PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Cryptage Windows & Android
Cryptage Windows & Android
Débuté par Lucas, 14 juin 2017 17:00 - 4 réponses
Posté le 14 juin 2017 - 17:00
Bonjour à tous,

J'essaye en vain de crypter de manière identique avec un programme Windows et une application Android.

Je me doute que c'est un problème habituel ANSI / UNICODE mais je n'arrive pas à le résoudre.

Quel est le meilleur moyen pour crypter 4 chiffres avec windows, et écrire ce cryptage dans une bdd hf/cs.

Pour côté application, quand l'utilisateur saisit ses 4 chiffres, je le crypte de manière identique afin de matcher sur le cryptage windows présent dans la bdd.

Si je supprime toutes conversions, ma méthode identique pour windows et android est comme ceci :

Procedure MdpCrypte(_mdpEnClair est un Buffer)

_key est un Buffer = HashChaîne(HA_MD5_128,"key1234")

RENVOYER CrypteStandard(_mdpEnClair,_key,crypteAES128)


Merci d'avance,

Lucas
Posté le 14 juin 2017 - 17:16
Bonjour Lucas,

la première chose à faire pour les problèmes ansi/unicode est de ne
JAMAIS utiliser une chaine littérale comme ton "key1234" dans quoi que
ce soit, mais toujours l'affecter d'abord dans une variable du bon type
(soit ansi, soit unicode)...

Autrement, sans instruction, le compile se dit que "key1234" doit être
traité comme del'ansi en windev et de l'unicode en mobile... Et donc le
résultat de haschchaine va être différent.

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com


Le 6/14/2017 à 9:00 AM, Lucas a écrit :
Bonjour à tous,

J'essaye en vain de crypter de manière identique avec un programme
Windows et une application Android.

Je me doute que c'est un problème habituel ANSI / UNICODE mais je
n'arrive pas à le résoudre.

Quel est le meilleur moyen pour crypter 4 chiffres avec windows, et
écrire ce cryptage dans une bdd hf/cs.

Pour côté application, quand l'utilisateur saisit ses 4 chiffres, je le
crypte de manière identique afin de matcher sur le cryptage windows
présent dans la bdd.

Si je supprime toutes conversions, ma méthode identique pour windows et
android est comme ceci :

PROCEDURE MdpCrypte(_mdpEnClair est un Buffer)

_key est un Buffer = HashChaîne(HA_MD5_128,"key1234")

RENVOYER CrypteStandard(_mdpEnClair,_key,crypteAES128)


Merci d'avance,

Lucas
Posté le 14 juin 2017 - 17:31
Je me réponds à moi même, j'ai essayé en déclarant explicitement toutes mes variables en UNICODE...

Mais je n'ai pas convertit côté windows la clé que j'écris et passe directement en paramètre sans passer par une variable dans HashChaine !

La correction est :
_key est un Buffer = HashChaîne(HA_MD5_128,AnsiVersUnicode("key1234"))
Membre enregistré
2 571 messages
Popularité : +222 (260 votes)
Posté le 14 juin 2017 - 17:47
Bonjour,

Passe ta chaine en utf8 avant de crypter

--
Cordialement,

Philippe SAINT-BERTIN
Géode Informatique
Posté le 15 juin 2017 - 09:54
Bonjour,

Vous êtes trop rapide ! :)

Merci à vous.