Geração de senhas

Publicado por Perfil removido (última atualização em 08/07/2011)

[ Hits: 4.877 ]

Download Password.py




Estou inciando com Python e aí está minha primeira classe.
Serve para gerar senhas de 7 tipos:

1- int       = Inteiro
2- char      = Letra
3- schar     = Caractere Especial
4- intchar   = Inteiro + Letra
5- intschar  = Inteiro + Caractere Epecial
6- charschar = Letra + Caractere Epecial
7- fullmode  = Inteiro + Letra + Caractere Epecial


Modo de usar:

size = 15

p = Password()

print('INTMODE...............: ', p.generate_int(size))
print('CHARMODE .............: ', p.generate_char(size))
print('SCHARMODE.............: ', p.generate_schar(size))
print('INTCHARMODE...........: ', p.generate_int_char(size))
print('INTSCHARMODE..........: ', p.generate_int_schar(size))
print('CHARSCHARMODE.........: ', p.generate_char_schar(size))
print('FULLMODE .............: ', p.generate_full(size))


Bem, é isso.
[]s

  



Esconder código-fonte

#encoding: UTF-8

'''
Created on 10/05/2011

@author: Orlando Xavier ([email protected])
'''

import random

class Password(object):
    '''
    Gera a senha a partir do tipo e tamanho
    Os tipos podem ser 7:
        1- int       = Inteiro
        2- char      = Letra
        3- schar     = Caractere Especial
        4- intchar   = Inteiro + Letra
        5- intschar  = Inteiro + Caractere Epecial
        6- charschar = Letra + Caractere Epecial
        7- fullmode  = Inteiro + Letra + Caractere Epecial
    '''

    # Inteiros
    intmode      = ['1','2','3','4','5','6','7','8','9']

    # Caracteres
    charmode     = ['a','b','c','d','e','f','g','h','i','j','k','l','m',
                   'n','o','p','q','r','s','t','u','v','w','x','y','z',
                   'A','B','C','D','E','F','G','H','I','J','K','L','M',
                   'N','O','P','Q','R','S','T','U','V','W','X','Y','Z']

    # Caracteres Especiais
    scharmode    = ['!','@','#','$','%','&','*','(',')','=','+',
                    ',','.',';','?','/','\\','|',':',';']

    # Todos os modos juntos
    fullmode     = ['1','2','3','4','5','6','7','8','9',
                    'a','b','c','d','e','f','g','h','i','j','k','l','m',
                    'n','o','p','q','r','s','t','u','v','w','x','y','z',
                    'A','B','C','D','E','F','G','H','I','J','K','L','M',
                    'N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
                    '!','@','#','$','%','&','*','(',')','=','+',
                    ',','.',';','?','/','\\','|',':',';']

    # Lista auxiliar: serve para fazer decisões durante a geração de alguns modos
    list_int_aux = [0,1,2,3,4,5,6,7,8,9]

    def __init__(self):
        '''
        Constructor
        '''

    def generate_int(self, size):
        '''
        Gera a senha com inteiros
        '''
        if size > 0:
            generated = ''
            loop = 0
            while (loop < size):
                random.shuffle(self.intmode)
                generated += self.intmode[0]
                loop += 1

            return generated

        else:
            return False  

    def generate_char(self, size):
        '''
        Gera a senha com caracteres
        '''
        if size > 0:
            generated = ''
            loop = 0

            while (loop < size):
                random.shuffle(self.charmode)
                generated += self.charmode[0]
                loop += 1

            return generated

        else:
            return False

    def generate_schar(self, size):
        '''
        Gera a senha com caracteres especiais
        '''
        if size > 0:
            generated = ''
            loop = 0

            while (loop < size):
                random.shuffle(self.scharmode)
                generated += self.scharmode[0]
                loop += 1

            return generated

        else:
            return False  

    def generate_int_char(self, size):
        '''
        Gera a senha com caracteres comuns e caracteres
        '''
        if size > 0:
            generated = ''
            loop = 0

            while (loop < size):

                random.shuffle(self.list_int_aux)

                if self.list_int_aux[0] % 2 == 0:
                    random.shuffle(self.intmode)
                    generated += self.intmode[0]

                else:
                    random.shuffle(self.charmode)
                    generated += self.charmode[0]

                loop += 1

            return generated

        else:
            return False  

    def generate_int_schar(self, size):
        '''
        Gera a senha com inteiros e caracteres especiais
        '''
        if size > 0:
            generated = ''
            loop = 0

            while (loop < size):

                random.shuffle(self.list_int_aux)

                if self.list_int_aux[0] % 2 == 0:
                    random.shuffle(self.intmode)
                    generated += self.intmode[0]

                else:
                    random.shuffle(self.scharmode)
                    generated += self.scharmode[0]

                loop += 1

            return generated

        else:
            return False  

    def generate_char_schar(self, size):
        '''
        Gera a senha com caracteres comuns e caracteres especiais
        '''
        if size > 0:
            generated = ''
            loop = 0

            while (loop < size):

                random.shuffle(self.list_int_aux)

                if self.list_int_aux[0] % 2 == 0:
                    random.shuffle(self.charmode)
                    generated += self.charmode[0]

                else:
                    random.shuffle(self.scharmode)
                    generated += self.scharmode[0]

                loop += 1

            return generated

        else:
            return False  

    def generate_full(self, size):
        '''
        Gera a senha com todos os tipos de caractere
        '''
        if size > 0:
            generated = ''
            loop = 0

            while (loop < size):
                random.shuffle(self.fullmode)
                generated += self.fullmode[0]
                loop += 1

            return generated

        else:
            return False  

Scripts recomendados

Permutação com repetição usando itertools

Calculadora de Operações Básicas

Sequencia Fibonacci

Números pares até 100

Calculadora científica (wip)


  

Comentários
[1] Comentário enviado por removido em 26/06/2011 - 04:50h

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import random, string

class Password( object ):
def __gen( self, lista, size ):
return size > 0 and ''.join( random.choice( lista ) for x in range( size ) ) or False

def generate_int( self, size ):
return self.__gen( string.digits, size )

def generate_char( self, size ):
return self.__gen( string.ascii_letters, size )

def generate_schar( self, size ):
return self.__gen( string.punctuation, size )

def generate_int_char( self, size ):
return self.__gen( string.ascii_letters + string.digits, size )

def generate_int_schar( self, size ):
return self.__gen( string.digits + string.punctuation, size )

def generate_char_schar( self, size ):
return self.__gen( string.ascii_letters + string.punctuation, size )

def generate_full( self, size ):
return self.__gen( string.ascii_letters + string.digits + string.punctuation, size )

[2] Comentário enviado por removido em 09/07/2011 - 22:23h

Boa, @alexstrf!
Será de grande utilidade para meus estudos.
Obrigado!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts