[C] CODAGE/DÉCODAGE ROT13

Pamaury Messages postés 341 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 17 juin 2008 - 22 juin 2005 à 10:43
cs_cynix Messages postés 20 Date d'inscription dimanche 7 novembre 2004 Statut Membre Dernière intervention 9 mars 2009 - 11 août 2005 à 11:10
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/32216-c-codage-decodage-rot13

cs_cynix Messages postés 20 Date d'inscription dimanche 7 novembre 2004 Statut Membre Dernière intervention 9 mars 2009
11 août 2005 à 11:10
je sais c'est crade et moche pardon
cs_cynix Messages postés 20 Date d'inscription dimanche 7 novembre 2004 Statut Membre Dernière intervention 9 mars 2009
11 août 2005 à 11:03
une petite alternative pour le rot13 sans avoir à tripoter soi-même l'alphabet dans sa source:

#include <stdio.h>
#include <string.h>
int
main (int ac, char **av){
char *buf;
int i, j, k;
if (ac < 2) return 1;
for (k = 1; av[k] != NULL; k++){
buf = strdup (av[k]);
for (i = 0; buf[i] != '\0'; i++){
for (j = 0; j < 13; j++){
if (buf[i] >= 'A' && buf[i] <= 'z'){
if (buf[i] >= 'A' && buf[i] <= 'Z')
{buf[i] = buf[i]++;if (buf[i] > 'Z')buf[i] = 'A';}
else {buf[i] = buf[i]++;if (buf[i] > 'z')buf[i] = 'a';}
}
}
}
printf ("%s ", buf);
free (buf);
}
printf("\n");
return 0;
}
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
7 juil. 2005 à 20:01
t'as fait que répéter ce que j'ai dit...
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
7 juil. 2005 à 14:19
ui

et bien le codage par rotation s'appelle Cesar

et comme on s'en rend compte,
il est vieux comme le monde et relativement simple

ceci dit, si on sais pas le mode de criptage,
ce n'est pas un mauvais moyen...
simplement, il n'est pas très <<Solide>>

++
Nono.
cs_ng Messages postés 31 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 28 juin 2005
28 juin 2005 à 00:11
c'est pas censé crypté comme je l'ai dit, c'est du ROT13, pas du cryptage, 2ème page trouvée sur google : http://usenetfr.free.fr/rot13.htm
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
27 juin 2005 à 06:57
j'avais posté une source qui cassait tout ce qui était ceasar, celle ci en est une...

le truc, c'est que ton programme ne crypte pas, il cache seulement : pour crypter, il faut une clef or ici...
cs_ng Messages postés 31 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 28 juin 2005
22 juin 2005 à 16:40
c'est pas mon codage, c'est du rot13, si tu connais pas c'est grave quand même et ca ne pretant pasetre effiace.

oui en plus pour le fichier ca ne sert a rien, le shell le fais pour toi :

#code un fichier
$ rot13 < fichier

#code ds un fichier
$ rot13 > fichier

#code fichier1 dans fichier2
$ rot13 < fichier1 > fichier2

#ou encore
$ cat fichier | rot13

#...

pour finir, ce n'est pas censé marcher pour les caractères accentués, tu peux essayer toi même avec lé commande rot :

$ rot
éàèù
éàèù

ce code sert justement à implémenter la commande rot sur les systèmes ou elle existe pas (genre windows)
Pamaury Messages postés 341 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 17 juin 2008 3
22 juin 2005 à 10:43
donc ton code c'est que la letrre A(1ère lettre de l'alphabet) devient le 13ème lette
le 2ème devient la 14ème.....
çà se fait en une ligne:
val=a_pos+(str[i]-a_pos+13)%26;
C'est pas très efficace comme codage: deux codage de suite=décodage: on a vite fait de trouver comment çà marche .

En plus du pourrais au moins gérer l'entrée et sortie dans un fichier(bien qu'on puisse le faire avec < et >) . En plus çà marche pas pour les caractère accentués et les ponctuations .
Rejoignez-nous