PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 22 → Encodage Ansi <=> unicode
Encodage Ansi <=> unicode
Débuté par Christian H., 12 mai 2017 10:29 - 2 réponses
Membre enregistré
23 messages
Posté le 12 mai 2017 - 10:29
Bonjour à tous,

Mon sujet porte sur le fait de décrypter une chaine :
- Sur linux
-> Formattage JSON
-> Cryptage en AES128 ECB
-> Encodage en base64
Sous Android, récupération de la chaine précédente

Lorsque mon projet Android est configuré en Ansi, le code ci-dessous fonctionne correctement :
bufSMessage2 est un Buffer="a+zPoWSff+olPmtapk5T03DH0vN/3P08i7eebMJFMx55hGXvdDEhI+bBTVKv70uSxoLHTrtEGDfwlT9qSpJixWrtd7Mg2ZgYzbOD4BNZfr/B/cwJUK3ezzPkl3NymxL6aXJq7PQvsMu0QI+/lVVKdcWkdHOLy9xFBWha88CV7XZ19c5JFYmcT03AhrU3haYlplKTnnbReM3Xah9PLCgrKlA0HcA4v4kAaNdxarwS68lYMxbgg3dqbH1k3QGO4aTBzdTBDUeRUy9j9reF5dc4bqnmQeHaP2xfKLEa/c6U3FRKdJ/AzMbcDDkg3sYAH5djmZeoGlC66fD5uvmgiQC+Yo/E4C1CIVNYwTzi0s6Z12xIYogFxyhYg4THfdNEyjdEciCiUA2ZvAkyTdkrCKTfFbGwg5EWnQaCCa05zS1TywJnW5LyY4f8j240NM7tSKFhR5bqpAN4Ojlz33ZiLLsBRaamg65mKQYBVS1zHkc3b6DlvflRdH4n27wEe30T8wOzNeBbkBRASL4Qyw8sb/1HFRfb4z0awpj7qIq5tIWE3BFcSRl/xSxgzG+NYQe3pltbXZFRI7CjG8pQRvJFJX+lSBKCaqBHMj8MjJ9EkNzobRR4s01EObOFT101Z0zgQ8UN"
bufClesCryptageWS est un Buffer="5D6F8C18AE24E6AE"

mess est un Buffer=Décrypte(bufSMessage2,"",crypteAucun,encodeBASE64)
Info(DécrypteStandard(mess,bufClesCryptageWS,crypteAES128,crypteECB))


Lorsque je modifie mon projet pour de l'Unicode, Décryptestandart me renvoie une chaine vide.
J'ai donc modifié le code du décodage bae64 pour :
mess est un Buffer=AnsiVersUnicode(Décrypte(maChaine,"",crypteAucun,encodeBASE64))


Décrypte me renvoie toujours une chaine vide et erreurinfo() me renvoie :
Détail de l'erreur système :
error : 1e06b065: Cipher functions:EVP_DecryptFinal_ex:BAD_DECRYPT

Ai je encore loupé quelque chose ?


Edit ; Lorsque je lance le test en mode "Go", j'ai l'erreur :
La taille de la clé (256 bits) ne correspond pas à celle attendu (128 bits) pour l'algorithme.

Lorsque je lance un "Go" en mode "Ansi", aucune erreur, mon JSON est bien décodé. Cela me fait penser que le problème se situe au niveau de la clés de décryptage, mais je ne voie pas le "pourquoi du comment".
Message modifié, 12 mai 2017 - 10:45
Membre enregistré
23 messages
Posté le 13 mai 2017 - 08:45
Je pense pouvoir confirmer que le problème vient de la clés, lorsque je suis en mode "Ansi" un taille(bufClesCryptageWS) renvoie 16 ( 16*8=128 >> ok clés 128).
Lorsque je suis en mode "Unicode" un taille(bufClesCryptageWS) renvoie 32, soit une clés 256.

Si quelqu'un voit comment si il y a quelque chose de spécial pour gérer la clés en Unicode ...................
Membre enregistré
23 messages
Posté le 14 mai 2017 - 21:24
Problème résolu avec :
bufClesCryptageWS est un Buffer = ChaîneVersUTF8("5D6F8C18AE24E6AE")