A voir également:
- Utilisation methode encrypt en C
- Notice d'utilisation - Guide
- Utilisation chromecast - Guide
- Votre compte a été désactivé pour violation de nos conditions d’utilisation - Guide
- La ressource demandée est en cours d'utilisation - Forum Virus
- Imprimante en cours d'utilisation ✓ - Forum Matériel & Système
5 réponses
crabs
Messages postés
908
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
3 août 2008
507
14 mai 2005 à 08:50
14 mai 2005 à 08:50
Salut,
Fais un man encrypt.
key et txt sont des tableaux d'octet uniquement composés des chiffres 0 et 1.
A+, crabs
Fais un man encrypt.
key et txt sont des tableaux d'octet uniquement composés des chiffres 0 et 1.
A+, crabs
Oui mais en ses cas la si ce sont des vecteurs d'octets égales à 0 ou 1 comment fait on pour récupérer le mot de passe initial ?
crabs
Messages postés
908
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
3 août 2008
507
14 mai 2005 à 21:18
14 mai 2005 à 21:18
Chaque octet se répresente sous la forme de 8 bits -> 8 '0' ou '1'.
En ASCII, chaque lettre occupe un octet.
Les tableaux font 64 bits, soit 8 octet ou 8 lettres ASCII.
CRYPTAGE
Si le mot de passe fait plus de 8 lettres tu le cryptes en boucle de 8, la dernière
boucle 'bourre' avec des '0' le tableau à crypter
Tu convertis en binaire chaque lettre. tu cryptes, tu met dans
un buffer que tu complète au fur à mesure des boucles.
DECODAGE
tu exploite le buffer par boucle de 64 octects,
du décode à l'aide de encrypt().
tu converti le binaire en caractère en reconstruisant l'octet.
Dès que tu as un caractère '\0' tu arretes ton traitement.
En ASCII, chaque lettre occupe un octet.
Les tableaux font 64 bits, soit 8 octet ou 8 lettres ASCII.
CRYPTAGE
Si le mot de passe fait plus de 8 lettres tu le cryptes en boucle de 8, la dernière
boucle 'bourre' avec des '0' le tableau à crypter
Tu convertis en binaire chaque lettre. tu cryptes, tu met dans
un buffer que tu complète au fur à mesure des boucles.
DECODAGE
tu exploite le buffer par boucle de 64 octects,
du décode à l'aide de encrypt().
tu converti le binaire en caractère en reconstruisant l'octet.
Dès que tu as un caractère '\0' tu arretes ton traitement.
Merci c'est cool j'ai compris
si le mot de passe fait 8 lettres pas de problème
sinon je prend un buffer d'au moins la taille de [nombre de caractères * 8 +1] je crypte caractère pas caractère que je stocke au fur et à mesure dans le buffer.
Et quand je décrypte j'exploite le buffer.
Mais j'ai une question: Pourquoi je dois bourrer la dernière boucle avec des 0 ?
Et connais tu une fonction qui te convertis des caractère en binaire?
Merci
si le mot de passe fait 8 lettres pas de problème
sinon je prend un buffer d'au moins la taille de [nombre de caractères * 8 +1] je crypte caractère pas caractère que je stocke au fur et à mesure dans le buffer.
Et quand je décrypte j'exploite le buffer.
Mais j'ai une question: Pourquoi je dois bourrer la dernière boucle avec des 0 ?
Et connais tu une fonction qui te convertis des caractère en binaire?
Merci
crabs
Messages postés
908
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
3 août 2008
507
15 mai 2005 à 00:37
15 mai 2005 à 00:37
Re,
C'est presque ça, Il faut crypter par 8 caractères, soit à chaque boucle un
offset de 64 octets (0 ou 1).
La taille du buffer sera (nb_caractere/8+1)*8 * 8 (faire le calcul avec un int)
L'operation (nb_caractere/8+1)*8 permet d'obtenir le multiple de 8
directement supérieur ou égal à nb_car+1 (taille de la chaine + '\0').
Je ne suis pas trop rentré dans les détails de cet algo, mais il fonctionne avec
des permutations et opération logique en fonction de la clé sur des mots de 64
bits. En bourrant à 0 t'es sur d'avoir initialisé correctement ce mot de 64 bits.
Pour la fonction de conversion en binaire, je connais pas la fonction qui
permet ça.
C'est presque ça, Il faut crypter par 8 caractères, soit à chaque boucle un
offset de 64 octets (0 ou 1).
La taille du buffer sera (nb_caractere/8+1)*8 * 8 (faire le calcul avec un int)
L'operation (nb_caractere/8+1)*8 permet d'obtenir le multiple de 8
directement supérieur ou égal à nb_car+1 (taille de la chaine + '\0').
Je ne suis pas trop rentré dans les détails de cet algo, mais il fonctionne avec
des permutations et opération logique en fonction de la clé sur des mots de 64
bits. En bourrant à 0 t'es sur d'avoir initialisé correctement ce mot de 64 bits.
Pour la fonction de conversion en binaire, je connais pas la fonction qui
permet ça.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question