PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Cryptage Windows <> Android
Cryptage Windows <> Android
Débuté par Olivier, 20 avr. 2019 14:41 - 2 réponses
Membre enregistré
188 messages
Popularité : +1 (5 votes)
Posté le 20 avril 2019 - 14:41
Bonjour,

J'ai un soucis depuis quelques temps qui m'embête beaucoup et peut être que quelqu'un sur le site à la solution.
Il y a des sujets dans le même style sur le forum, mais cela ne m'a pas aidé pour autant ! }:(

J'ai des informations que je saisis et que je crypte sur une application Windev sur Windows et que je stocke sur HFSQL (toujours sous windows). Je désirerais les lire sur Android (et donc les décrypter).

J'utilise donc la commande CrypteStandard et DécrypteStandard car sur l'aide j'ai pu lire :
"Contrairement aux fonctions Crypte et Décrypte, les fonctions CrypteStandard et DécrypteStandard utilisent des algorithmes de cryptage standard qui permettent d'échanger des messages cryptés entre des plateformes d'exécution différentes (Windows, Linux, Android, Java, iOS, PHP, etc.) et/ou avec des outils tiers."



J'utilise donc sous Windows :

Procedure CryptageToutePlateforme(LOCAL sChaine_UNICODE est une chaîne UNICODE, LOCAL sCle_UNICODE est une chaîne UNICODE)

sChaine_UTF8 est un Buffer = ChaîneVersUTF8(sChaine_UNICODE)
sCle_UTF8 est un Buffer = ChaîneVersUTF8(sCle_UNICODE)
bufCle est un Buffer
bufCrypte est un Buffer

bufCle= HashChaîne(HA_MD5_128, sCle_UTF8)
bufCrypte = CrypteStandard(sChaine_UTF8, bufCle, crypteAES128)

RENVOYER bufCrypte




Sous Android j'utilise :

Procedure DecryptageToutePlateforme(LOCAL bufCrypte est un Buffer, LOCAL sCle_UNICODE est une chaîne UNICODE)

sCle_UTF8 est un Buffer = ChaîneVersUTF8(sCle_UNICODE)
bufCle est un Buffer
sResultat est un Buffer

bufCle= HashChaîne(HA_MD5_128, sCle_UTF8)
sResultat = DécrypteStandard(bufCrypte, bufCle, crypteAES128)

RENVOYER sResultat




Je transforme en UTF8, car toujours dans l'aide :
"Développement multi-plateforme : Pour manipuler des chaînes de caractères, il est nécessaire d'utiliser le même format sur toutes les plateformes. Il est conseillé d'utiliser des chaînes au format UTF 8 (et de convertir les chaînes Unicode si nécessaire)."

Sous Windows, j'arrive à décrypter sans soucis, mais cela ne fonctionne pas sous Android (chaine illisible) je pense que c'est un soucis de codage (UTF8...)

Quelqu'un pourrait m'aider ?

Merciiiiiiiiiiiiiiii beaucoup

Olivier

--
Membre enregistré
3 311 messages
Popularité : +93 (137 votes)
Posté le 20 avril 2019 - 17:48
Salut Oliver quand tu crypte tu met en UTF-8 une chaîne unicode
donc en théorie quand tu décrypte ne devrait tu pas faire l'inverse passer de UTF-8 a unicode ?
Membre enregistré
188 messages
Popularité : +1 (5 votes)
Posté le 20 avril 2019 - 19:25
Merci beaucoup pour ta réponse rapide (un samedi en plus :merci: encore un accro de Windev !)
Tu as raison !
Pour ceux que çà peut intéresser... J'ai repassé l'UTF8 et unicode et çà fonctionne.

Procedure DecryptageToutePlateforme(LOCAL bufCrypte est un Buffer, LOCAL sCle_UNICODE est une chaîne UNICODE)

sCle_UTF8 est un Buffer = ChaîneVersUTF8(sCle_UNICODE)
bufCle est un Buffer
bufResultat est une Buffer

bufCle= HashChaîne(HA_MD5_128, sCle_UTF8)
bufResultat = DécrypteStandard(bufCrypte, bufCle, crypteAES128)

RENVOYER UTF8VersUnicode(bufResultat)


Merci encore.
Olivier

--