Page 1 sur 1
[R] Générer une chaine de 32 char Hexa
Posté : mar. 10 mars 2015 21:12
par DimVar
Bonjour à tous,
Quelqu'un pourrait il me fournir une boucle qui me génère toutes les valeurs possibles d'une chaine de 32 char en Hexa ?
D'avance merci.
Cdlt, Dimvar.
Re: [..] Générer une chaine de 32 char Hexa
Posté : mar. 10 mars 2015 21:45
par jguinch
Tu es conscient que ça va être plus que long ?
Tu peux te baser là-dessus :
http://www.autoitscript.fr/forum/viewto ... 486#p84486 (il y aura surement beaucoup plus rapide, mais tu peux essayer)
Edit : non, tu ne peux pas te baser là-dessus puisque 16^32 est un poil trop grand
Sinon, juste par curiosité : ça va te servir à quoi ?
Re: [..] Générer une chaine de 32 char Hexa
Posté : mar. 10 mars 2015 21:47
par sozary
Que de souvenirs!
Re: [..] Générer une chaine de 32 char Hexa
Posté : mar. 10 mars 2015 22:04
par jguinch
@sozary :
@DimVar, une autre possibilité (le premier qui arrive à obtenir le fichier de résultat complet aura une récompense)

:
► Afficher le texte
Code : Tout sélectionner
$hFile = FileOpen("hexa32.txt", 2)
For $iPart1 = 0 To 0xFFFF
For $iPart2 = 0 To 0xFFFF
For $iPart3 = 0 To 0xFFFF
For $iPart4 = 0 To 0xFFFF
For $iPart5 = 0 To 0xFFFF
For $iPart6 = 0 To 0xFFFF
For $iPart7 = 0 To 0xFFFF
$sContent = ""
For $iPart8 = 0 To 0xFFFF
$sContent &= Hex($iPart1, 4) & Hex($iPart2, 4) & Hex($iPart3, 4) & Hex($iPart4, 4) & _
Hex($iPart5, 4) & Hex($iPart6, 4) & Hex($iPart7, 4) & Hex($iPart8, 4) & @CRLF
Next
FileWrite($hFile, $sContent)
Next
Next
Next
Next
Next
Next
Next
FileClose($hFile)
Re: [..] Générer une chaine de 32 char Hexa
Posté : mar. 10 mars 2015 22:18
par sozary
Oui alors jguinch, justement, quand on connais a l avance le nombre de boucle que l on veut faire et qu il est relativement (comme ici avec tes 8 boucles), il est préférable de mettre la récursivité de côté (elle serai alors moins rapide et plus gourmande en ram?)
Re: [..] Générer une chaine de 32 char Hexa
Posté : mar. 10 mars 2015 22:34
par jguinch
Complètement.
Dans le code que j'ai utilisé pour la combinaison des
mots de passe lettres, je n'ai pas utilisé la récursivité, puisque je pouvais calculer la taille du tableau final.
Par contre, dans le cas où on doit gérer un truc énorme (du genre la table hexa sur 32 caractères

), on ne pourra pas calculer la taille à l'avance...
Pas de récursivité non plus à cause de la limite de récursivité, donc là....
Pas de tableau non plus à cause de la taille (16,777,216 max)
Donc ça nous "limite" pour ce besoin. Mais franchement là, c'est tiré par les cheveux...
Re: [..] Générer une chaine de 32 char Hexa
Posté : mar. 10 mars 2015 23:24
par DimVar
Merci les amis, c'est juste pour récupérer qq fichiers dont je ne connais le nom...
PS : J'ai bien pété une barre sur le topic de sozarv, surtout le passage entre mikell et Tlem

Re: [..] Générer une chaine de 32 char Hexa
Posté : mer. 11 mars 2015 02:49
par jchd
On peux sur le papier, mais il faut bien comprendre qu'il faut un "sacré ordinateur" pour stocker tout ça !
En effet, ça représente 16^32 = 340 282 366 920 938 463 463 374 607 431 768 211 456 chaînes de 32 caractères, soit --AutoIt utilise la représentation UCS-2 avec 16 bits par caractère-- 21 778 071 482 940 061 661 655 974 875 633 165 533 184 octets.
Re: [..] Générer une chaine de 32 char Hexa
Posté : mer. 11 mars 2015 13:56
par mikell
Bah tu peux toujours générer quelques chaînes, les tester, puis les supprimer et recommencer l'opération le nombre de fois nécessaire
Tu nous diras dans quelques années si ça a marché

Re: [..] Générer une chaine de 32 char Hexa
Posté : mer. 11 mars 2015 14:53
par jchd
J'aime bien les euphémismes "quelques"...
Pour mieux concrétiser les idées, si chaque bit du nombre d'octets nécessaires cité plus haut était stocké dans un seul atome de silicium (par une technologie révolutionnaire permettant d'écrire ou de lire un bit spécifique dans la masse sans circuiterie additionnelle), stocker l'ensemble ne demanderait pas moins de 82.4 milliards de tonnes de ce matériau et représenterait un cube de 3.28 km de côté.
Ouaip, un "sacré ordinateur" en vue ... ou pas.