PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → Cryptage Windows <> Android
Cryptage Windows <> Android
Started by Olivier, Apr., 20 2019 2:41 PM - 2 replies
Registered member
188 messages
Popularité : +1 (5 votes)
Posted on April, 20 2019 - 2:41 PM
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

--
Registered member
3,311 messages
Popularité : +93 (137 votes)
Posted on April, 20 2019 - 5:48 PM
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 ?
Registered member
188 messages
Popularité : +1 (5 votes)
Posted on April, 20 2019 - 7:25 PM
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

--