FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WINDEV Mobile 2024
→
Encodage Ansi <=> unicode
Encodage Ansi <=> unicode
Débuté par Christian H., 12 mai 2017 10:29 - 2 réponses
Connectez-vous…
Christian H.
#1
Membre enregistré
36 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 :
buf
SMessage2
est un
Buffer
=
"a+zPoWSff+olPmtapk5T03DH0vN/3P08i7eebMJFMx55hGXvdDEhI+bBTVKv70uSxoLHTrtEGDfwlT9qSpJixWrtd7Mg2ZgYzbOD4BNZfr/B/cwJUK3ezzPkl3NymxL6aXJq7PQvsMu0QI+/lVVKdcWkdHOLy9xFBWha88CV7XZ19c5JFYmcT03AhrU3haYlplKTnnbReM3Xah9PLCgrKlA0HcA4v4kAaNdxarwS68lYMxbgg3dqbH1k3QGO4aTBzdTBDUeRUy9j9reF5dc4bqnmQeHaP2xfKLEa/c6U3FRKdJ/AzMbcDDkg3sYAH5djmZeoGlC66fD5uvmgiQC+Yo/E4C1CIVNYwTzi0s6Z12xIYogFxyhYg4THfdNEyjdEciCiUA2ZvAkyTdkrCKTfFbGwg5EWnQaCCa05zS1TywJnW5LyY4f8j240NM7tSKFhR5bqpAN4Ojlz33ZiLLsBRaamg65mKQYBVS1zHkc3b6DlvflRdH4n27wEe30T8wOzNeBbkBRASL4Qyw8sb/1HFRfb4z0awpj7qIq5tIWE3BFcSRl/xSxgzG+NYQe3pltbXZFRI7CjG8pQRvJFJX+lSBKCaqBHMj8MjJ9EkNzobRR4s01EObOFT101Z0zgQ8UN"
buf
ClesCryptageWS
est un
Buffer
=
"5D6F8C18AE24E6AE"
mess
est un
Buffer
=
Décrypte
(
buf
SMessage2
,
""
,
crypteAucun
,
encodeBASE64
)
Info
(
DécrypteStandard
(
mess
,
buf
ClesCryptageWS
,
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
Signaler
0
0
Christian H.
#2
Membre enregistré
36 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 ...................
Signaler
0
0
Christian H.
#3
Membre enregistré
36 messages
Posté le 14 mai 2017 - 21:24
Problème résolu avec :
buf
ClesCryptageWS
est un
Buffer
=
ChaîneVersUTF8
(
"5D6F8C18AE24E6AE"
)
Signaler
0
0
→ Revenir à WINDEV Mobile 2024
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
WEBDEV (précédentes versions)
WINDEV Mobile (précédentes versions)
Etats & Requêtes
Hors-sujet
Outils
Français
English
Español
Portuguesa
Fermer cette fenêtre
Type de recherche
Uniquement les sujets
Tous les messages
Période de recherche
Date indifférente
Moins d'une heure
Moins de 24 heures
Moins d'une semaine
Moins d'un mois
Moins d'un an
Annuler
Aperçu de votre message
Ajouter une image
Importer une image depuis une URL
Envoyer une image depuis un fichier de votre disque
Déposez ici un fichier ou cliquez sur "Parcourir..."
ou
Annuler
0%
WLangage
SQL
XML, HTML
JAVA, Javascript
Texte