Jarod1980
Messages postés273Date d'inscriptionsamedi 5 juillet 2003StatutMembreDernière intervention31 mars 2015
-
6 déc. 2004 à 12:12
Jarod1980
Messages postés273Date d'inscriptionsamedi 5 juillet 2003StatutMembreDernière intervention31 mars 2015
-
6 déc. 2004 à 15:18
Salut tout le monde,
Voilà j'ai un problème dans mon programme de password. Je m'explique: J'ai développé en premier lieu un programme où l'utilisateur choisit son mot de passe, celui ci est crypté et sauvegardé dans un fichier. Jusque là c'est bon. Par contre dans mon programme de protection ca plante. Le programme protection crypte le mot de passe entré par l'utilisateur et le compare à la chaîne de caractères du fichier crypté.
Le problème c'est que mon programme ne s'arrête pas de boucler même si je rentre le bon mot de passe. J'ai certainement dû faire une erreur mais je ne sais pas laquelle. J'ai mis la source de mon prog ci-dessous. J'espère que quelqu'un pourra m'aider. Encore merci.
int cle;
FILE *fichier;
fichier=fopen("password.txt","r");
cle=15;
do {
fscanf(fichier,"%s",&str); /* recupere la chaine de caractères ds fichier
et on la stock dans str */
fclose(fichier); /* On ferme fichier */
printf("\nEnter Password:");
scanf("%s",&pass); /* Saisie utilisateur */
CESAR(pass,cle); /* On appel Cesar pour crypter la saisie */
}
while(str!=pass);
return 0;
}
void CESAR(char *mot, int cle) /* ---- DEFINITION Fonction Cesar ---- */
{
int i, n;
for (i=0;i<strlen(mot)-1;i++)
{
mot[i] = tolower(mot[i]); /* ---- CONVERSION en minuscule au cas où ---- */
if (mot[i] != 32) /* ---- CHIFFREMENT des caracteres autres que ESPACE ---- */
{
n = mot[i]+cle; /* ---- CONVERSION du Char mot[i] en Int ---- */
if (n<=122) /* ---- CHIFFREMENT de mot[]---- */
{
mot[i] = n; /* ---- AFFECTATION de Int n dans Char mot[i] ---- */
}
else
{
n = n - 26;
mot[i] = n; /* ---- AFFECTATION de Int n dans Char mot[i] ---- */
}
}
else /* ---- CHIFFREMENT de ESPACE en ESPACE ---- */
{
mot[i] = 32;
}
}
mot[strlen(mot)-1] = 0; /* ---- AFFECTATION ('\0') (NULL) (Code 0) en fin de chaine ---- */
}
/*password.txt contient la chaîne de caractères suivantes:
?@ABCDpq */