Geração de senhas

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

[ Hits: 4.631 ]

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 (ox@orlandoxavier.com)
'''

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

Programa que resolve expressões matematicas

Aprendendo a fazer equações em Python

Calculadora Cientifica

Um novo hello World, com checkbox

Cálculo de Índices Contábeis


  

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