C'est un peu compliqué (car repiqué d'un script plus complexe).. mais ça marche, et ça te donne une idée sur comment faire.
Code : Tout sélectionner
MsgBox(0, '', _CalculPw())
Func _CalculPw()
Local $Pass = ""
$StringNombr = _ScrambleWord("01234567890123456789012345", Random() / 3 * 100)
$Pass = StringMid($StringNombr, Mod(StringMid(Random() / 3, 1, 2), 26) + 1, 1)
$StringNombr = _ScrambleWord("01234567890123456789012345", Random() / 3 * 100)
$Pass &= StringMid($StringNombr, Mod(StringMid(Random() / 7, 2, 2), 26) + 1, 1)
$StringNombr = _ScrambleWord("01234567890123456789012345", Random() / 3 * 100)
$Pass &= StringMid($StringNombr, Mod(StringMid(Random() / 5, 3, 2), 26) + 1, 1)
$StringMinus = _ScrambleWord("abcdefghijklmnopqrstuvwxyz", Random() / 3 * 100)
$Pass &= StringMid($StringMinus, Mod(StringMid(Random() / 3, 4, 2), 26) + 1, 1)
$StringMinus = _ScrambleWord("abcdefghijklmnopqrstuvwxyz", Random() / 3 * 100)
$Pass &= StringMid($StringMinus, Mod(StringMid(Random() / 5, 5, 2), 26) + 1, 1)
$StringMinus = _ScrambleWord("abcdefghijklmnopqrstuvwxyz", Random() / 3 * 100)
$Pass &= StringMid($StringMinus, Mod(StringMid(Random() / 7, 4, 2), 26) + 1, 1)
$StringNombr = _ScrambleWord("01234567890123456789012345", Random() / 3 * 100)
$Pass &= StringMid($StringNombr, Mod(StringMid(Random() / 7, 3, 2), 26) + 1, 1)
$StringNombr = _ScrambleWord("01234567890123456789012345", Random() / 3 * 100)
$Pass &= StringMid($StringNombr, Mod(StringMid(Random() / 5, 2, 2), 26) + 1, 1)
$StringNombr = _ScrambleWord("01234567890123456789012345", Random() / 3 * 100)
$Pass &= StringMid($StringNombr, Mod(StringMid(Random() / 3, 1, 2), 26) + 1, 1)
$StringNombr = _ScrambleWord("01234567890123456789012345", Random() / 3 * 100)
$Pass &= StringMid($StringNombr, Mod(StringMid(Random() / 7, 5, 2), 26) + 1, 1)
Return $Pass
EndFunc ;==>_Calcul
Func _ScrambleWord($sWord, $iSeed)
If StringLen($sWord) < 2 Then Return $sWord
Local $aSeq = _GetSequence(StringLen($sWord), $iSeed), $i, $sRet = ""
For $i = 1 To StringLen($sWord)
$sRet &= StringMid($sWord, $aSeq[$i], 1)
Next
Return $sRet
EndFunc
Func _GetSequence($iLength, $iSeed)
Local $aRet[$iLength + 1], $i, $j, $k
$aRet[0] = $iLength
For $i = 1 To $iLength
$aRet[$i] = $i
Next
SRandom($iSeed)
For $i = 1 To $iLength
$j = Random(1, $iLength, 1)
$k = $aRet[$j]
$aRet[$j] = $aRet[$i]
$aRet[$i] = $k
Next
Return $aRet
EndFunc