PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Crypte/décrypte mot de passe
Crypte/décrypte mot de passe
Iniciado por anonyme, 13,mar. 2020 11:57 - 10 respuestas
Miembro registrado
130 mensajes
Publicado el 13,marzo 2020 - 11:57
Bonjour,

Je souhaite crypter un mot de passe puis l' envoyer dans un fichier .INI, avant de le décrypter par la suite, lorsqu' un utilisateur rentre son mot de passe. Le souci est que je n' arrive à récupérer ni le mot de passe crypté, ni la clé de décryptage.

Voici mon code:
Dans la création du mot de passe d' abord:
//cryptage mdp
sMessage est un Buffer = SAI_Mot_de_Passe
bufCle = HashChaîne(HA_MD5_128, "mot de passe") //bufcle a été déclaré dans l' initialisation du projet
bufCrypte est un Buffer = CrypteStandard(sMessage, bufCle, crypteAES128)

//on met le mdp dans le fichier INI.
bufMDP est un Buffer = INIEcrit("Config","MotDePasse", bufCrypte, (SysRep(srAppData)) + "\config.ini")


Puis lorsque l' utilisateur entre à nouveau le mot de passe:

bufmdp est un Buffer = INILit("Config","MotDePasse", "",(SysRep(srAppData)) + "\config.ini") //mot de passe crypté

//decryptage du mot de passe
bufRésultat est un Buffer = DécrypteStandard(bufmdp, bufcle, crypteAES128)
bufmdp = SAI_Mot_de_passe
SI bufmdp = bufRésultat ALORS
Info("Mot de passe correct")
SINON
Info("Mot de passe incorrect.")
FIN


J' ai l' erreur suivante: "La taille de la clé (0 bits) ne correspond pas à celle attendu (128 bits) pour l'algorithme."

J' ai essayé de réutiliser le code d' Eric, mais je m' embrouille plus qu' autre chose, hélas.

Quelqu' un aurait-il une idée ?

Cordialement,
Miembro registrado
130 mensajes
Publicado el 13,marzo 2020 - 12:02
Ne faites pas attention au message sur Eric, je l' ai copié depuis un autre forum, désolé.
Miembro registrado
909 mensajes
Publicado el 13,marzo 2020 - 12:14
anonyme a écrit :
Bonjour,

Je souhaite crypter un mot de passe puis l' envoyer dans un fichier .INI, avant de le décrypter par la suite, lorsqu' un utilisateur rentre son mot de passe. Le souci est que je n' arrive à récupérer ni le mot de passe crypté, ni la clé de décryptage.

Voici mon code:
Dans la création du mot de passe d' abord:
//cryptage mdp
sMessage est un Buffer = SAI_Mot_de_Passe
bufCle = HashChaîne(HA_MD5_128, "mot de passe") //bufcle a été déclaré dans l' initialisation du projet
bufCrypte est un Buffer = CrypteStandard(sMessage, bufCle, crypteAES128)

//on met le mdp dans le fichier INI.
bufMDP est un Buffer = INIEcrit("Config","MotDePasse", bufCrypte, (SysRep(srAppData)) + "\config.ini")


Puis lorsque l' utilisateur entre à nouveau le mot de passe:

bufmdp est un Buffer = INILit("Config","MotDePasse", "",(SysRep(srAppData)) + "\config.ini") //mot de passe crypté

//decryptage du mot de passe
bufRésultat est un Buffer = DécrypteStandard(bufmdp, bufcle, crypteAES128)
bufmdp = SAI_Mot_de_passe
SI bufmdp = bufRésultat ALORS
Info("Mot de passe correct")
SINON
Info("Mot de passe incorrect.")
FIN


J' ai l' erreur suivante: "La taille de la clé (0 bits) ne correspond pas à celle attendu (128 bits) pour l'algorithme."

J' ai essayé de réutiliser le code d' Eric, mais je m' embrouille plus qu' autre chose, hélas.

Quelqu' un aurait-il une idée ?

Cordialement,



Bjr,
Même problème, mais à ce jour je n'ai pas réinvesti sur celui-ci, j'ai botté en touche "pour l'instant" !
A suivre

--
Christian - kick71
Miembro registrado
130 mensajes
Publicado el 13,marzo 2020 - 12:19
Bonjour Christian,

Vous m' avez fait une fausse joie, j' ai bien cru que vous auriez pu m' éclairer sur le sujet. ;(
J' ai parlé d' Eric dans mon post qui avait trouvé une solution à son problème en utilisant justement Crypte/DécrypteStandard, je vous renvoie au sujet, si ça vous interesse:

https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windevmobile/25651-buffer-cryptestandard-38683/read.awp
Miembro registrado
2.682 mensajes
Publicado el 13,marzo 2020 - 12:21
Bonjour,

Pourquoi vouloir vérifier le mot de passe en le décryptant. Il est préférable de faire un hash du mot de passe et de stocker le hash, ce dernier étant par définition irreversible, le mot de passe ne peut donc pas être trouvé.

Il suffit ensuite de comparer les 2 hash à la saisie du mot de passe et c'est bien mieux sécurisé comme ceci.

--
Cordialement,

Philippe SAINT-BERTIN
Miembro registrado
130 mensajes
Publicado el 13,marzo 2020 - 14:14
Bonjour Philippe,

Merci pour votre solution aussi simple qu' efficace :merci:
Malheureusement, ce type d' authentification ne marche pas a priori vu que le serveur n' accepte pas les hash MD5 :(
Miembro registrado
130 mensajes
Publicado el 16,marzo 2020 - 09:32
Up, s' il vous plait.
Miembro registrado
130 mensajes
Publicado el 16,marzo 2020 - 11:11
Update: Alors, j' ai tenté une autre méthode. J' ai créé un bouton permettant de tester le mot de passe directement après la création de ce dernier:
Résultat: ça marche.
En revanche, si je ferme la session et que je la relance sur la fenêtre demandant le mot de passe, j' ai l' erreur: ""La taille de la clé (0 bits) ne correspond pas [...]"

Bizarre... Pourtant, on ne peut pas vraiment parler de persistance des données car le mot de passe est lu dans le fichier.INI qui est bien mis à jour, je suis perdu, je dois vous avouer :(
Miembro registrado
130 mensajes
Publicado el 16,marzo 2020 - 13:48
Complètement oublié la clé... Et pourtant, ce n' est pas faute d' avoir lu et relu le message d' erreur :/ Du coup, j' ai renseigné aussi la clé dans le .ini et ça marche. Mais est-ce la bonne solution ? L' idéal ne serait-il pas d' isoler la clé du mdp au cas où ? Longue réflexion...
Miembro registrado
2.682 mensajes
Publicado el 16,marzo 2020 - 15:11
L' idéal ne serait-il pas d' isoler la clé du mdp au cas où ?


Ce n'est pas l'idéal, c'est une obligation. C'est la base de la sécurité. Ta question revient à dire

Ne vaut-il mieux pas retirer la clé de la porte lorsque je m'en vais de chez moi ???


Il serait utile de reprendre ton besoin à la base. Car tu dis :
Malheureusement, ce type d' authentification ne marche pas a priori vu que le serveur n' accepte pas les hash MD5


De quel serveur parles-tu ???

--
Cordialement,

Philippe SAINT-BERTIN
Miembro registrado
130 mensajes
Publicado el 16,marzo 2020 - 16:06
Bonjour Philippe,

Merci pour ta réponse. Du coup, tu préconiserais de le mettre où ?
Sinon, c' est un serveur SMTP. Pour envoyer un mot de passe, je dois renseigner plusieurs critères dont le mot de passe, et ce, afin d' envoyer un mail.