Geração de senhas

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

[ Hits: 5.366 ]

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

Formatando número de telefone celular (usando .format)

JOKENPO - Por uso de palavras

Aprendendo a fazer equações em Python

Calcular a data do Carnaval e da Páscoa

Script para calcular indice de massa corporal


  

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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts