Pages : 1
#1 Le 31/03/2014, à 10:08
- Bybeu
[résolu] Modif de nasty
Bonjour
Je voudrais modifier le programme nasty de récupération de clé gnupg pour l'accélérer:
Dans le code on peut lui dire de tester avec des plages de caractères 0-9 et/ou a-z et/ou A-Z ou ascii imprimables 32-126 ou tous les ascii 32-255.
Je voudrais modifier la plage 32-126 pour la décomposer en une plage avec des plages de trous.
L'original :
...
void add_charset_range(int start, int end)
{
int loop;
for(loop=start; loop<=end; loop++)
{
charset[charset_n++] = (unsigned char)loop;
}
}
....
case 'c':
for(loop=0; loop<strlen(optarg); loop++)
{
if (optarg[loop] == 'a')
add_charset_range('a', 'z');
else if (optarg[loop] == 'A')
add_charset_range('A', 'Z');
else if (optarg[loop] == '0')
add_charset_range('0', '9');
else if (optarg[loop] == '.')
add_charset_range(32, 126);
else if (optarg[loop] == '+')
add_charset_range(32, 255);
else
....
Ma modif de naïf qui morch pô (c'est la première fois que j'essaye de programmer):
else if (optarg[loop] == '.')
add_charset_range(32, 33 - 35, 38 - 40, 43 - 45, 46 - 48, 122);
...
J'ai déjà cherché des exemples et le sens de la commande add_charset_range, mais rien de lumineux, gougleu ne trouve que 3 réponses qui n'ont rien à voir avec le C !
J'ai essayé avec d'autres séparateurs que le "-" et aussi de mettre 5 lignes de sous-plages avec ou sans le point-virgule aux 4 premières, avec toujours des erreurs de compilation
Merci pour les astuces
Dernière modification par Bybeu (Le 31/03/2014, à 16:43)
Hors ligne
#2 Le 31/03/2014, à 10:51
- pingouinux
Re : [résolu] Modif de nasty
Bonjour,
Je ne connais pas le sujet, mais peut-être ceci ?
else if (optarg[loop] == '.') {
add_charset_range( 32, 32);
add_charset_range( 33, 35);
add_charset_range( 38, 40);
add_charset_range( 43, 45);
add_charset_range( 46, 48);
add_charset_range(122, 122);
}
Édité : Correction de la syntaxe
Dernière modification par pingouinux (Le 31/03/2014, à 11:28)
Hors ligne
#3 Le 31/03/2014, à 16:43
- Bybeu
Re : [résolu] Modif de nasty
Merci pengouinux, ça marche. j'ai pas essayé tes (32, 32), mais c'est les accolades qui ont résolu le problème. Avé
Hors ligne
Pages : 1