Page 1 sur 1
[..] Générateur liste de mot de passe avec regex
Posté : sam. 26 avr. 2014 07:47
par cortx
Bonjour;
J'ai utilisé il y a quelques années un mot de passe compliqué et malheureusement, je ne m'en souvient plus.
Le point positif c'est que je sais comment il est construit et j'aimerai que vous m'aidiez à faire un script capable de générer dans un fichier texte tous les mots possible en fonction des informations dont je dispose.
***
Prenons le mot de passe "saruman" pour exemple de travail.
Le mot de passe fait 7 caractères.
Il commence forcément par la lettre s (Majuscule / minuscule / symbole $)
La lettre "a" peux etre Majuscule / minuscule / chiffre 4 et est forcément placé en seconde et avant dernière position
Toutes les autres lettres ne peuvent etre que majuscule ou minuscule.
Je sais que le mot de passe se termine par un n (Majuscule / minuscule)
Je connais aussi les lettres dont sont composés le mot de passe, pas besoin de faire tout l'alphabet.
***
J'ai quelques bases en programmation mais c'est le point de départ qu'il me manque.
Je pense qu'il faut travailler avec les expressions régulières mais je n'y connais rien du tout et je ne sais pas comment m'y prendre.
Merci d'avance pour votre aide.
Re: [..] Générateur liste de mot de passe avec regex
Posté : sam. 26 avr. 2014 11:43
par cortx
Voici le code que j'ai qui me génère 432 mots de passe.
C'est moche, c'est bourrin, très mal ré-adaptable mais ca fait ce que je veux.
Par contre ca ne permet pas de choisir ses caractères comme on pourrait le faire avec une expression régulière.
Si quelqu'un à la technique pour rendre ça adaptable à tous.
► Afficher le texte
Code : Tout sélectionner
;$lettre1 = "s|S|$"
;$lettre2 = "a|A|4"
;$lettre3 = "r|R"
;$lettre4 = "u|U"
;$lettre5 = "m|M"
;$lettre6 = "a|A|4"
;$lettre7 = "n|N
$1 = 1
$2 = 1
$3 = 1
$4 = 1
$5 = 1
$6 = 1
$7 = 1
$lettre1 = ""
$lettre2 = ""
$lettre3 = ""
$lettre4 = ""
$lettre5 = ""
$lettre6 = ""
$lettre7 = ""
while $1 < 4
if $1 = 1 Then
$lettre1 = "s"
EndIf
if $1 = 2 Then
$lettre1 = "S"
EndIf
if $1 = 3 Then
$lettre1 = "$"
EndIf
while $2 < 4
if $2 = 1 Then
$lettre2 = "a"
EndIf
if $2 = 2 Then
$lettre2 = "A"
EndIf
if $2 = 3 Then
$lettre2 = "4"
EndIf
while $3 < 3
if $3 = 1 Then
$lettre3 = "r"
EndIf
if $3 = 2 Then
$lettre3 = "R"
EndIf
while $4 < 3
if $4 = 1 Then
$lettre4 = "u"
EndIf
if $4 = 2 Then
$lettre4 = "U"
EndIf
while $5 < 3
if $5 = 1 Then
$lettre5 = "m"
EndIf
if $5 = 2 Then
$lettre5 = "M"
EndIf
while $6 < 4
if $6 = 1 Then
$lettre6 = "a"
EndIf
if $6 = 2 Then
$lettre6 = "A"
EndIf
if $6 = 3 Then
$lettre6 = "4"
EndIf
while $7 < 3
if $7 = 1 Then
$lettre7 = "n"
EndIf
if $7 = 2 Then
$lettre7 = "N"
EndIf
$password = $lettre1&$lettre2&$lettre3&$lettre4&$lettre5&$lettre6&$lettre7
fonction_ecriture_fichier( $password )
$7 = $7 + 1
Wend
$6 = $6 + 1
$7=1
Wend
$5 = $5 + 1
$6=1
$7=1
Wend
$4 = $4 + 1
$5 = 1
$6 = 1
$7 = 1
Wend
$3 = $3 + 1
$4 = 1
$5 = 1
$6 = 1
$7 = 1
WEnd
$2 = $2 + 1
$3 = 1
$4 = 1
$5 = 1
$6 = 1
$7 = 1
WEnd
$1 = $1 + 1
$2 = 1
$3 = 1
$4 = 1
$5 = 1
$6 = 1
$7 = 1
WEnd
Func fonction_ecriture_fichier( $password )
$fichier = FileOpen("fichier_password.txt", 1)
If $fichier = -1 Then
MsgBox( 0, "Erreur", "Ouverture du fichier impossible." )
Exit
EndIf
FileWriteLine ($fichier, $password )
FileClose( $fichier )
EndFunc
Re: [..] Générateur liste de mot de passe avec regex
Posté : sam. 26 avr. 2014 12:02
par mikell
ça irait mieux ça ?
► Afficher le texte
Code : Tout sélectionner
$Form1 = GUICreate("Form1", 150, 310, 200, 100)
$List = GUICtrlCreateList("", 20, 20, 110, 250)
$label = GUICtrlCreateLabel("", 20, 280, 120, 20)
GUISetState()
Local $string = "", $count = 0, $liste[7] = ["S,s,$", "A,a,4", "R,r", "U,u", "M,m", "A,a,4", "N,n"]
_mot(0,"")
GUICtrlSetData($label, $count & " mots possibles")
While GUIGetMsg()<>-3
Wend
Func _mot($k, $string)
Local $temp = StringSplit($liste[$k],",",2)
for $i = 0 to UBound($temp) -1
if $k = UBound($liste) -1 Then
GUICtrlSetData($List, $string & $temp[$i] & "|")
$count += 1
Else
_mot($k + 1, $string & $temp[$i] )
EndIf
Next
EndFunc
Mais je ne vois pas ce que les expressions régulières ont à voir là-dedans...
Re: [..] Générateur liste de mot de passe avec regex
Posté : sam. 26 avr. 2014 12:35
par cortx
o_O - WTF j'ai passé 3 heures à écrire un truc archi crado et tu l'a fais en 24 lignes.
Je suis pas du tout au points.
Désolé pour la balise spoiler, j'avais mis un quote par erreur et je n'ai pas vérifié après avoir valider mon texte, j'étais reparti sur mon code.
En fait, je pensais aux expressions régulières afin de gérer les différents caractères possibles pour une seule et même position.
Tu l'a traité sous forme de tableau en utilisant le stringsplit.
Merci beaucoup.
Re: [..] Générateur liste de mot de passe avec regex
Posté : sam. 26 avr. 2014 13:41
par cortx
Je n'y ai pas pensé tout à l'heure.
Mais comment sort tu le listing dans un fichier texte ?
J'ai essayé; _FileWriteFromArray sans succès.