Afficher un mot de passe crypté ()

Résolu/Fermé
Black:bag Messages postés 6 Date d'inscription dimanche 3 mars 2013 Statut Membre Dernière intervention 30 juin 2013 - 30 juin 2013 à 19:02
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 1 juil. 2013 à 21:15
Bonsoir;
J'ai crypté un mot de passe de cette façon*****,mais en résumé je veux l'afficher ce que je veux faire (stocker le mot de passe crypté dans une chaine et puis l'afficher ).mais il y a un problème logistique : si le mot de passe n'est pas une chaîne de caractère par exemple:un nombre ??.
le code :

 #include <stdio.h> 
 
#include <stdlib.h>
 
int main(int argc,char**argv) 
{
  int input;
char c=13;
 
  printf("Please Enter your Password:\t");
 
  while(( input=getch())!=c)
        printf("*");
  printf("\n");
 
  return 0;
}


Merci

3 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
30 juin 2013 à 19:21
Bonjour,
Ton code ne chiffre pas (et non crypter) le code mais le masque. C'est vraiment différent.

Pour afficher le mot de passe entré, il faut le stocker. Donc, tu dois utiliser une chaîne de caractère : char mdp[50];
Ensuite, tu affiches toujours une étoile à chaque fois que l'utilisateur appuie sur une lettre mais au lieu de stocker dans input, tu stockes dans mdp[i] et incrémente i.

Pour afficher le mot de passe, tu auras juste à afficher la chaîne : puts(mdp);

char c=13;
Utilise plutôt : '\r' c'est plus lisible. Et t'es même pas obligé de créer une variable pour ça. On perd en lisibilité, surtout avec le nom que tu as utilisé.

Ensuite, si tu veux chiffrer le mot de passe, il te faudra implémenter une fonction de chiffrement. A toi de voir laquelle tu veux utiliser : RSA, AES, César, ... ?
0