Cryptage de César - C - Programmation
Marsh Posté le 29-11-2014 à 01:59:41
Salut
tab est le nom de ta variable, donc tu ne peux pas avoir un pointeur de type tab. Tu peux avoir un pointeur vers le type de tab, donc un char*
cad que tu peux faire
Code :
|
pour avoir t qui pointe sur le debut de tab.
Mais je pense que ton algo n'est pas du tout bon, ou alors j'ai rien compris à ce que tu veux faire....
Et surtout ton utilisation des pointeurs pour supprimer/decaler des lettres est ultra dangereuse pour ne pas dire fausse. La ça va très vite te peter à la figure.
Marsh Posté le 29-11-2014 à 03:18:21
naabiilaa a écrit : |
Commence par simuler ton algo étape par étape sur un papier quadrillé avant de te lancer dans le codage en C. Fais en sorte que l'algo sur le papier soit le plus simple possible.
Ensuite retranscris.
Marsh Posté le 29-11-2014 à 16:55:38
Le chiffre de César n'est pas très sûr, je te recommande plutôt de l'AES-CBC-256+RSA2048+HMAC-SHA256, bonne implémentation!
Marsh Posté le 28-11-2014 à 18:47:26
Bonsoir, je veux faire un programme de codage suivant la methode de César sur les lettres de 'A' a 'Z', ma 1ere fonction controle le message avant le codage: garder que les lettres de A a Z (majuscules) et supprimer le reste, puis la 2eme fonction effectue le décalage... voila mes fonctions:
char supprimer_lettres (char * chaine)
{
char * p ; /* pointeur aide */
for ( ; *chaine ; chaine++)
{
if (*chaine >= 'A' && *chaine <= 'Z')
chaine++;
else
{
p=chaine;
p++;
*chaine = *p;
}
}
return *chaine ;
}
char code_a_decalage_fixe ( char * chaine , int k) // k le decalage
{
char tab[26] = {'A','B',...., 'Z'};
tab *t; // ici je veux declarer un pointeur de type tab mais sa m'affiche une erreur !
int i=0,j=0;
supprimer_lettres(chaine);
while (j<26 && i<strlen(chaine))
{
if ( *(chaine+i) != *(t+j) )
j++;
*(chaine+i) = *(t+(j+k)) ;
i++;
j++;
}
}
Comment faire Merci