#include #include #include #include #include #include $file = FileOpen ("mpgenerator.txt",1) #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("PassWord Generator v1.0", 279, 211, 192, 124) GUICtrlCreateLabel("PassWord Generator", 42, 8, 205, 28) GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif") GUICtrlCreateLabel("Password Len", 115, 60, 83, 17) $PassWrdLen = GUICtrlCreateInput("10", 67, 56, 40, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY,$ES_NUMBER)) GUICtrlCreateUpdown (-1) GUICtrlSetLimit(-1, 20, 1) $SpecialChars = GUICtrlCreateCheckbox(" Special Chars", 80, 96, 145, 17) GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") $PassWrd = GUICtrlCreateInput("", 52, 136, 170, 21, BitOR($ES_CENTER,$ES_READONLY)) $Generate = GUICtrlCreateButton("Generate", 106, 176, 75, 25, 0) GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") GUICtrlSetState($Generate, $GUI_FOCUS) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE FileClose ($file) Exit Case $Generate GUICtrlSetData($PassWrd, _PassWordGenerate(GUICtrlRead($PassWrdLen), _IsChecked($SpecialChars))) _vmdp () $mdp = GUICtrlRead ($PassWrd) FileWrite ($file,$mdp & @CRLF) EndSwitch WEnd ;=============================================================================== ; Description: Returns a password string with or without special chars. ; Parameter(s): $PassWordLen - The len of desired password ; $CharFlag - Use special chars in password. ; 0 = No ; 1 = Yes ; Requirement(s): None ; Return Value(s): Return a string. ; ; Author(s): JBnH ; Note(s): ; Examples: MsgBox(64,"Password without special chars", _PassWordGenerate(10, 0)) ; MsgBox(64,"Password with special chars", _PassWordGenerate(10, 1)) ;=============================================================================== Func _PassWordGenerate($PassWordLen, $CharFlag) Local $PassWrd, $Global If $CharFlag = 1 Then $SpecialChar = StringSplit("&'_:;,.!@#$%*()-=+[]\/?", "") For $X = 1 to $SpecialChar[0] $Global &= $SpecialChar[$X] Next $Array = StringSplit("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" & $Global,"") Else $Array = StringSplit("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789","") Endif For $X = 1 to $PassWordLen $PassWrd &= $Array[Random (1, $Array[0], 1)] Next Return $PassWrd EndFunc Func _IsChecked($control) Return BitAnd(GUICtrlRead($control),$GUI_CHECKED) = $GUI_CHECKED EndFunc ;=============================================================================== ; Description: Verifie si le mot de passe n'existe pas deja et le change si il l'est ; Parameter(s): Avoir un creatueur de mot de passe avec sa fonction ; ; Requirement(s): None ; Return Value(s): Return a string. ; ; Author(s): guitarist ; Note(s): ; Examples: ; ;=============================================================================== Func _vmdp () Local $line = 0 $mdpf = FileRead ($file) $mdpfi = StringSplit ($mdpf,@CRLF) $mdp = GUICtrlRead ($PassWrd) $line +=1 If $mdpfi[$line] = $mdp Then GUICtrlSetData($PassWrd, _PassWordGenerate(GUICtrlRead($PassWrdLen), _IsChecked($SpecialChars))) _vmdp () EndIf EndFunc