Cryptage RC4 [Résolu]

djay99 22 Messages postés mardi 17 juillet 2007Date d'inscription 12 mars 2008 Dernière intervention - 11 mars 2008 à 18:01 - Dernière réponse : djay99 22 Messages postés mardi 17 juillet 2007Date d'inscription 12 mars 2008 Dernière intervention
- 12 mars 2008 à 09:49
Bonjour tout le monde,

Je suis en train de me faire la main avec du cryptage RC4 en utilisant la lib openssl.
Cependant je rencontre un souci dans mon texte crypté.

Je souhaite crypter le texte "hello word". J'utilise pour cela la methode RC4(...).
Quand je visualise mon texte crypté, j'obtiens: "...hello word" où ... represente des caractères (certainement un texte crypté). Quand je decrypte ce texte je reobtiens bien "hello word". De plus j'ai un nombre de caracteres speciaux equivalents a la taille de ma chaine hello word.

le code:

#include <stdlib.h>
#include <openssl/rc4.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int main(void)
{
  char plaintext[13];
  strcpy(plaintext,"Hello Word?");
  printf("test: %s\n",plaintext);
  //unsigned char *plaintext = "hello word?";
  unsigned char ciphertext[13];
  //unsigned char *ciphertext;
  char mykey[16];
  strcpy(ciphertext, "");
  strcpy(mykey,"1234567891012131");
RC4_KEY rc4_key;


RC4_set_key(&rc4_key, 16, mykey);
RC4(&rc4_key,(unsigned int) 13, plaintext, ciphertext);


/* FILE *file; */
/* file = fopen("test.txt","w"); */
/* fputs(ciphertext,file); */
/* fclose(file); */


printf("%s\n", plaintext);
printf("Encrypted: %s\n", ciphertext);


RC4_set_key(&rc4_key, 16, mykey);
RC4(&rc4_key, 13, ciphertext, plaintext);


printf("Decrypted: %s\n", plaintext);
exit(1);
}
---------------------------------------------------
Si quelqu'un a une solution a ceci...

Merci d'avance ^^
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Neo_Fr 653 Messages postés mardi 6 décembre 2005Date d'inscription 10 novembre 2014 Dernière intervention - 11 mars 2008 à 19:22
3
Merci
Salut,
printf("%s", ..); sert a afficher des chaines (terminer par un 0 donc), suffit donc d'en rajouter un..

#include <stdio.h>
#include <stdlib.h>
#include <openssl/rc4.h>

int main(void)
{
RC4_KEY rc4_key;
char plaintext[16];
char mykey[16];
unsigned char ciphertext[16];
strcpy(plaintext,"Hello Word?");
printf("test: %s\n",plaintext);
strcpy(mykey,"1234567891012131");
RC4_set_key(&rc4_key, 16, mykey);
RC4(&rc4_key, (unsigned int) 13, plaintext, ciphertext);
printf("%s\n", plaintext);
cyphertext[13] = 0x00;
printf("Encrypted: %s\n", ciphertext);
memset(plaintext, 0, 16);
RC4_set_key(&rc4_key, 16, mykey);
RC4(&rc4_key, 13, ciphertext, plaintext);
printf("Decrypted: %s\n", plaintext);
return 0;
}

Neo_Fr

Merci Neo_Fr 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Commenter la réponse de Neo_Fr
djay99 22 Messages postés mardi 17 juillet 2007Date d'inscription 12 mars 2008 Dernière intervention - 12 mars 2008 à 09:49
0
Merci
Merci beaucoup Neo_Fr ;)
Commenter la réponse de djay99

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.