Générateur de mot de passe python (cli)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 361 fois - Téléchargée 15 fois

Contenu du snippet

Ce script vous permet de générer le nombre de mots de passe que vous souhaitez, en y incluant des caractères spéciaux, ou pas.

Source / Exemple :


#!/usr/bin/env python

import sys
import os
import random

from optparse import OptionParser

Parser = OptionParser()
Parser.add_option("-l", "--lenght", dest="Lenght", help="Password lenght (default 8)", default=True)
Parser.add_option("-a", "--alphanumeric", dest="Alphanumeric", help="Generate alphanumeric only password", action="store_true")
Parser.add_option("-s", "--specialchars", dest="SpecialChars", help="Generate an alphanumeric w/ special chars password", action="store_true")
Parser.add_option("-n", "--number", dest="Number", help="Specify how many password you want to generate")

(Options,Args) = Parser.parse_args()
Lenght = Options.Lenght
Alphanumeric = Options.Alphanumeric
SpecialChars = Options.SpecialChars
Number = Options.Number

MinPasswdLenght = 8

def GenPassword(lenght=MinPasswdLenght,alphanum=True,specialchars=False, Num=1):

    AlphaNum = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
    All = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890&#{}()|-_^@=$%<>!:;.,?"

    if Lenght is True:
        lenght = MinPasswdLenght
    if alphanum is True:
        choice = AlphaNum
    if specialchars is True:
        choice = All
    else:
        choice = AlphaNum

    print "\nGenerated Password(s) :\n"
    for x in range(0,int(Num)):
        GeneratedPW = ''.join(random.sample(choice, int(lenght)))
        print '',GeneratedPW

def CheckLenght(Lenght):
	if int(Lenght) < MinPasswdLenght and Lenght is not True:
		print '\n ! Minimum password lenght can\'t be less than %d' % MinPasswdLenght
		Lenght = MinPasswdLenght
	else:
		Lenght = Lenght

	return Lenght

if len(sys.argv) < 2:
    print "\n=> No options specified... I will use %d Alphanumeric chars\n   Type %s -h for more options" % (MinPasswdLenght,sys.argv[0])
    DefinedLenght = MinPasswdLenght
    DefinedNum = 1
    DefinedAlphanumeric = True
    DefinedSpecialChars = False
    GenPassword(DefinedLenght,DefinedAlphanumeric,DefinedSpecialChars,DefinedNum)
elif Options.Lenght is not None:
    if Number is None:
        Number = 1
    DefinedLenght = CheckLenght(Lenght)
    DefinedNum = Number
    DefinedAlphanumeric = Alphanumeric
    DefinedSpecialChars = SpecialChars
    GenPassword(DefinedLenght,DefinedAlphanumeric,DefinedSpecialChars,DefinedNum)

A voir également

Ajouter un commentaire Commentaire
Messages postés
336
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
8 novembre 2011
2
C'est un peu abuser, une petite recherche, et tu vois qu'il y en a déjà 3 des versions CLI...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.