Environnement
Problème/Symptômes
Le client a signalé que les fonctions SHA256 et SHA512 renvoient un hachage incorrect.
Le lien ci-dessous montre que d'autres internautes ont aussi soulevé le même problème : https://experienceleaguecommunities.adobe.com/t5/adobe-campaign-classic-questions/sha256-and-sha512-function-returns-wrong-hash/qaq-p/351035/comment-id/3882?profile.language=fr
Un client a partagé une solution :
Le problème s’est produit car Adobe convertit le type de données de chaîne en nvarchar
au lieu de varchar
dans le cas où la base de données utilise le codage Unicode. Dans le cas du client, le codage par défaut de la base de données est utilisé comme Unicode pour prendre en charge la variable Thaï langue. Par conséquent, Adobe a converti la chaîne en nvarchar
.
Pour les fonctions SHA256 et SHA512, il fonctionne normalement, mais renvoie des valeurs de hachage différentes pour varchar
et nvarchar
.
Dans le cas du client, il a été possible de modifier ce champ (contenant uniquement un numéro de mobile) en varchar
et le hacher correctement.
En outre, si SQL Server est utilisé, la fonction digest utilise la variable UTF-16 Représentation de la chaîne. Vous n’obtiendrez pas le condensé attendu (qui est souvent calculé sur ASCII ou UTF-8 ).
Exemple : hello donnera 14cde7c9ad35de5a37fce2ac276742175028fd9f7cdf0dae01ff508b126429d9 as SHA-256 sur le ASCII/UTF-8 Représentation de la chaîne et donnera 18fe2820b38427a08a5b49fb4d71a7027799bfe050d3050ca4d3491a85aa0eb sur le UTF-16 Représentation.