pourrait peut etre remplacé par une boucle
for(k=0; k<=25; k++)
{
char lettre = 'a' + k
if(chaine[compteur]==lettre)
{
chaine[compteur]=chaine2[k];
}
}
c'est beau le copier collé mais c'est pas trop maintenable...
cs_Alucard
Messages postés7Date d'inscriptiondimanche 22 décembre 2002StatutMembreDernière intervention 7 septembre 2004 7 sept. 2004 à 14:27
pourrait peut etre remplacé par une boucle
for(k=0; k<=25; k++)
{
char lettre = 'a' + k
if(chaine[compteur]==lettre)
{
chaine[compteur]=chaine2[k];
}
}
c'est beau le copier collé mais c'est pas trop maintenable...
cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 7 janv. 2003 à 22:22
pouaaaa !!! les tableau ke tu utilise bouf bcp de memoire, alors kil ne sont pas necessaire ou kil aurrai un otre moyen ki boufferai moins de le memoire inutilement...
cs_gorgonzola
Messages postés37Date d'inscriptionsamedi 16 mars 2002StatutMembreDernière intervention21 février 2015 28 juil. 2002 à 15:16
oups scusez moi g fait une erreur : la fonction c
crypte(unsigned char *texte,unsigned char password[]) et pas
crypte(char *texte, char password[]), sinon les caracteres ne vont pas plus loin que 127 et ca doit pouvoir aller jusque 255
cs_gorgonzola
Messages postés37Date d'inscriptionsamedi 16 mars 2002StatutMembreDernière intervention21 février 2015 28 juil. 2002 à 15:12
c pas mal mais ya pas bcp de securite. Voila un debut de fonction cryptage en OU exclusif (XOR) :
void crypte(char *texte, char password[])
{
int i;
int i2;
i2=0;
for (i=0 ; i<strlen(texte) ; i++)
{
texte[i]=texte[i]^password[i2];
i2++;
if (i2==strlen(password)) i2=0;
}
}
strlen donne la longueur de la chaine de caractere (faut includer string.h) et l'operation '^' fait un ou exclusif entre les deux caracteres. pour faire un OU exclusif manuellement avec un crayon et du papier, tu prend deux nombre, par exemple 12 et 14, tu les convertit en binaire, ça fait 1100 et 1110, et la c tout simple, si les deux bit sont les meme tu mets 0 sinon tu met 1. ca fait :
1100 XOR 1110 = 0010, qui en decimal donne 2. l'avantage du OU exclusif c ke l'operation est la meme pour crypter et decrypter :
12 XOR 14 2 et 12 XOR 2 14
cs_kjus
Messages postés269Date d'inscriptionmercredi 24 avril 2002StatutMembreDernière intervention 9 juin 2003 27 juil. 2002 à 21:50
1. G UN warning de comparaison entre unsigned et signed. Declare donc tes tableaux de char en unsigned.
2. Pour le cryptage : deja quand on met une clef qui ne comporte pas les dernieres lettres de l'alphabet, ensuite les lettres cryptés et non cryptés sont les meme pour les dernieres lettres de l'alphabet.
voila
cs_RaZoR
Messages postés102Date d'inscriptionvendredi 22 février 2002StatutMembreDernière intervention22 décembre 2003 27 juil. 2002 à 14:31
Si vous pouviez m'aider a resoudres le problemes de mon programmes se serait simpa !!
Merci
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 26 juil. 2002 à 20:34
'l' en première position de la clé dans 'a', 'a' en second donc 'b', ...
cs_RaZoR
Messages postés102Date d'inscriptionvendredi 22 février 2002StatutMembreDernière intervention22 décembre 2003 26 juil. 2002 à 14:15
AHAHAHAH
DivXPVobD
Messages postés18Date d'inscriptionlundi 1 juillet 2002StatutMembreDernière intervention18 juin 2003 26 juil. 2002 à 14:01
Oui mais on decrypte comment ?
cs_RaZoR
Messages postés102Date d'inscriptionvendredi 22 février 2002StatutMembreDernière intervention22 décembre 2003 26 juil. 2002 à 13:41
oupppsss j'ai oublier une etape !!!
avant d'enlever les espaces : il copie la chaine de caracteres : "alphabet" a la fin des mots cles !!
cs_RaZoR
Messages postés102Date d'inscriptionvendredi 22 février 2002StatutMembreDernière intervention22 décembre 2003 26 juil. 2002 à 13:37
et bien :
- le prog demande a l'utilisateur d'entrer des mots cles !! (exemple : la maison verte est jolie )
- apres il creer un nouvel alphabet :
pour cela :
- il enleve les espaces (exemple : lamaisonverteestjolie)
- il enleve les caracteres en doubles ( voir fonction : nouvelle_clef)
- ce qui donne un nouvel alphabet (exemple : lamisonvertjbcdfghkpquwxyz)
- il demande le texte a crypter
- et le crypte avec le nouvel alphabet (si a dans texte a crypter remplace par caractere n°1 de la nouvel alphabet !!! ...etc )
Voila !!
cs_kjus
Messages postés269Date d'inscriptionmercredi 24 avril 2002StatutMembreDernière intervention 9 juin 2003 26 juil. 2002 à 13:18
tu sais pas faire les allocations dynamiques ?
si tu veux que quelqu'un t'aide pour ton problème, ca serait bien d'expliquer comment marche ton cyptage..
7 sept. 2004 à 14:27
{
chaine[compteur]=chaine2[0];
}
...
if(chaine[compteur]=='z')
{
chaine[compteur]=chaine2[25];
}
pourrait peut etre remplacé par une boucle
for(k=0; k<=25; k++)
{
char lettre = 'a' + k
if(chaine[compteur]==lettre)
{
chaine[compteur]=chaine2[k];
}
}
c'est beau le copier collé mais c'est pas trop maintenable...
7 sept. 2004 à 14:27
{
chaine[compteur]=chaine2[0];
}
...
if(chaine[compteur]=='z')
{
chaine[compteur]=chaine2[25];
}
pourrait peut etre remplacé par une boucle
for(k=0; k<=25; k++)
{
char lettre = 'a' + k
if(chaine[compteur]==lettre)
{
chaine[compteur]=chaine2[k];
}
}
c'est beau le copier collé mais c'est pas trop maintenable...
7 janv. 2003 à 22:22
28 juil. 2002 à 15:16
crypte(unsigned char *texte,unsigned char password[]) et pas
crypte(char *texte, char password[]), sinon les caracteres ne vont pas plus loin que 127 et ca doit pouvoir aller jusque 255
28 juil. 2002 à 15:12
void crypte(char *texte, char password[])
{
int i;
int i2;
i2=0;
for (i=0 ; i<strlen(texte) ; i++)
{
texte[i]=texte[i]^password[i2];
i2++;
if (i2==strlen(password)) i2=0;
}
}
strlen donne la longueur de la chaine de caractere (faut includer string.h) et l'operation '^' fait un ou exclusif entre les deux caracteres. pour faire un OU exclusif manuellement avec un crayon et du papier, tu prend deux nombre, par exemple 12 et 14, tu les convertit en binaire, ça fait 1100 et 1110, et la c tout simple, si les deux bit sont les meme tu mets 0 sinon tu met 1. ca fait :
1100 XOR 1110 = 0010, qui en decimal donne 2. l'avantage du OU exclusif c ke l'operation est la meme pour crypter et decrypter :
12 XOR 14 2 et 12 XOR 2 14
27 juil. 2002 à 21:50
2. Pour le cryptage : deja quand on met une clef qui ne comporte pas les dernieres lettres de l'alphabet, ensuite les lettres cryptés et non cryptés sont les meme pour les dernieres lettres de l'alphabet.
voila
27 juil. 2002 à 14:31
Merci
26 juil. 2002 à 20:34
Texte en clair : abc
Clé : lamisonvertjbcdfghkpquwxyz
Texte crypté : lam
'l' en première position de la clé dans 'a', 'a' en second donc 'b', ...
26 juil. 2002 à 14:15
26 juil. 2002 à 14:01
26 juil. 2002 à 13:41
avant d'enlever les espaces : il copie la chaine de caracteres : "alphabet" a la fin des mots cles !!
26 juil. 2002 à 13:37
- le prog demande a l'utilisateur d'entrer des mots cles !! (exemple : la maison verte est jolie )
- apres il creer un nouvel alphabet :
pour cela :
- il enleve les espaces (exemple : lamaisonverteestjolie)
- il enleve les caracteres en doubles ( voir fonction : nouvelle_clef)
- ce qui donne un nouvel alphabet (exemple : lamisonvertjbcdfghkpquwxyz)
- il demande le texte a crypter
- et le crypte avec le nouvel alphabet (si a dans texte a crypter remplace par caractere n°1 de la nouvel alphabet !!! ...etc )
Voila !!
26 juil. 2002 à 13:18
si tu veux que quelqu'un t'aide pour ton problème, ca serait bien d'expliquer comment marche ton cyptage..