RedLife 0 Posté(e) le 5 juillet 2018 Partager Posté(e) le 5 juillet 2018 (modifié) Salut, ca fait 2 ans voir plus que j'ai pas écris une ligne de code je ré-apprends petit à petit et ça va je me refamiliarise petit à petit avec les langages informatiques (php, python et le reste html, css) Mais python reste mon préféré et de loin, je vous partage donc ma première "vraie" création depuis 2 ans et j'en suis plutot content import random import string import sys import os class Generator: """ Classe permettant de générer un mot de passe par RedVie31""" def __init__(self): self.mdpFinal = "" self.listeCaracteresMaj = string.ascii_uppercase self.listeChiffres = "0123456789" self.listeCaracteres = string.ascii_lowercase self.longueur = 0 self.auth = False self.Spec = "#,-$%!§_@=&çè" #Caractères spéciaux, modifiable et adaptable à vos besoins def generer(self, longueur, auth): tailleChaine1 = len(self.listeCaracteresMaj) tailleChaine2 = len(self.listeCaracteres) tailleChaine3 = len(self.listeChiffres) tailleSpec = len(self.Spec) if(isinstance(longueur, int)): self.longueur = longueur else: print("ERREUR DE TYPE RENSEIGNE (TAILLE_MDP) DOIT ETRE INT)") sys.exit() if(isinstance(auth, bool)): pass else: sys.exit() i = 0 while i < self.longueur: if auth == True: rand = random.randint(0,3) elif(auth == False) : rand = random.randint(0,2) if(rand == 3): randx = random.randint(0,tailleSpec) self.mdpFinal = self.mdpFinal + self.Spec[randx] if(rand == 0): rand1 = random.randint(0, 25) self.mdpFinal = self.mdpFinal + self.listeCaracteresMaj[rand1] elif(rand == 1): rand1 = random.randint(0, 25) self.mdpFinal = self.mdpFinal + self.listeCaracteres[rand1] elif rand == 2: rand1 = random.randint(0, 9) self.mdpFinal = self.mdpFinal + self.listeChiffres[rand1] i += 1 return self.mdpFinal try: taille = sys.argv[1] carac = sys.argv[2].lower() tailleMdp = int(taille) auth = ['yes', 'no'] ok = False except: print("Usage : script.py {TAILLE_MDP} {CARAC}\nTAILLE_MDP = INT\nCARAC = 'yes' or 'no'\nVERIFIEZ LES ARGUMENTS UTILISES") sys.exit() if len(sys.argv) != 3: print("LE PROGRAMME A BESOIN DE DEUX ARGUMENTS POUR DEMARRER") if(carac == "yes"): mdpFinal = Generator() X = mdpFinal.generer(tailleMdp, True) print(X) elif(carac == "no"): mdpFinal = Generator() X = mdpFinal.generer(tailleMdp, False) print(X) mdpEcriture = "\n" + X + " | \n" file = open("mdp.txt",'a') file.write(mdpEcriture) file.close() En executant le script comme tel : fichier.py {LongueurMDP} {'yes' OU 'no'} (la syntaxe d'utilisation est expliquée de toute façon qd vous lancerez le script le script génère un mdp aléatoire avec ou sans caractères spéciaux et écrit le mdp dans un fichier nommé mdp.txt ds le meme dossier que le script bonne journée à vous Modifié le 5 juillet 2018 par RedLife Lien à poster Partager sur d’autres sites Plus d'options de partage...
Benji 6 Posté(e) le 5 juillet 2018 Partager Posté(e) le 5 juillet 2018 I LOVE this Merci du partage du code sa peut être utile Lien à poster Partager sur d’autres sites Plus d'options de partage...
RedLife 0 Posté(e) le 5 juillet 2018 Auteur Partager Posté(e) le 5 juillet 2018 Il y a 4 heures, Benji a dit : I LOVE this Merci du partage du code sa peut être utile pas de soucis ravi que ca puisse peut etre te servir Lien à poster Partager sur d’autres sites Plus d'options de partage...
Yassine 0 Posté(e) le 29 août 2018 Partager Posté(e) le 29 août 2018 (modifié) Bonsoir, Je me suis amusé à faire un générateur de mot de passe similaire à celui que tu proposes, sans le booléen qui permet de désactiver les caractères spéciaux. L'algorithme de nos deux codes restent néanmoins très peu performant pour générer des mots de passe de qualité: on aurait pu implémenter un système qui permet, par exemple, de ne pas avoir x caractère du même type à la suite (car notre générateur est essentiellement basé sur le randint basé sur la chance, ce qui ne devrait pas être le cas). from random import randint from sys import argv class Password(): """Classe qui permet la création d'un mot de passe aléatoire""" def __init__(self): self.password = "" self.cpt = 0 def Generate(self,length): """Génère un mot de passe aléatoire de taille length""" while self.cpt != length: #Séléctionne le caractère à insérer. selectChar = randint(1,4) #Ajout minuscule si 1. if selectChar == 1: lowerChar = randint(97,122) self.password += chr(lowerChar) #Ajout majuscule si 2. elif selectChar == 2: upperChar = randint(65,90) self.password += chr(upperChar) #Ajout chiffre si 3. elif selectChar == 3: digitChar = randint(48,57) self.password += chr(digitChar) #Ajout spécial si 4. else: specialChar = randint(33,47) self.password += chr(specialChar) #Incrémente le compteur jusqu'à ce que la longueur soit atteinte. self.cpt += 1 return self.password #Ajoute le mot de passe généré dans un fichier texte, ferme le programme si l'utilisateur n'enconde pas un int. password = Password() if isinstance(int(argv[1]),int): with open("mdp.txt", "w", encoding="utf-8") as f: f.write(password.Generate(int(argv[1]))) else: print("Erreur: le programme ne reconnaît aucun chiffre, le programme va fermer" Bonne soirée. Modifié le 29 août 2018 par Yassine Lien à poster Partager sur d’autres sites Plus d'options de partage...
Euferio 0 Posté(e) le 18 octobre 2018 Partager Posté(e) le 18 octobre 2018 j'ai compris Lien à poster Partager sur d’autres sites Plus d'options de partage...
Administrateur Narzo 759 Posté(e) le 16 juillet 2019 Administrateur Partager Posté(e) le 16 juillet 2019 Salut RedLife , Ton sujet a été déplacé pour une des deux raisons suivantes : - Ta demande a été résolue. - Ton sujet se trouvait dans la mauvaise catégorie. Ceci est un message automatique. 《⠀⠀Founder of Inshare.fr⠀》 《⠀⠀Baylife moderator⠀》 《⠀⠀Twitch channel moderator⠀》 《⠀⠀French translator Trucksbook.eu⠀》 𝐹𝑒𝑒𝑙 𝑓𝑟𝑒𝑒 𝑡𝑜 𝑤𝑟𝑖𝑡𝑒 𝑎 𝑐𝑜𝑚𝑚𝑒𝑛𝑡 ————————————————— ╱⠀⠀⠀⠀⠀⠀⠀⠀⠀Règlements⠀⠀ //⠀⠀Abonnements⠀⠀ //⠀⠀ Discord ⠀⠀⠀⠀⠀⠀⠀⠀⠀╲ Lien à poster Partager sur d’autres sites Plus d'options de partage...
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant