Ambiente
Problema/Sintomi
Il cliente ha segnalato che le funzioni SHA256 e SHA512 restituiscono un hash errato.
Di seguito un link mostra altri utenti che hanno sollevato lo stesso problema: https://experienceleaguecommunities.adobe.com/t5/adobe-campaign-classic-questions/sha256-and-sha512-function-returns-wrong-hash/qaq-p/351035/comment-id/3882
Un cliente ha condiviso una soluzione:
Si è verificato il problema perché Adobe converte il tipo di dati della stringa in nvarchar
anziché varchar
nel caso in cui il database utilizzi la codifica Unicode. Nel caso del cliente, l’impostazione predefinita della codifica del database viene utilizzata come Unicode per supportare il Thai lingua. Pertanto, Adobe ha convertito la stringa in nvarchar
.
Per le funzioni SHA256 e SHA512, funziona normalmente, ma restituirà valori diversi di hash per varchar
e nvarchar
.
Nel caso del cliente, è stato possibile modificare tale campo (contenente solo un numero mobile) in varchar
e inseriscilo correttamente.
Adobe Articolo comunitario:
https://experienceleaguecommunities.adobe.com/t5/adobe-campaign-classic-questions/sha256-and-sha512-functions-returning-wrong-hash/qaq-p/351034
Inoltre, se si utilizza SQL Server, la funzione digest utilizza UTF-16 rappresentazione della stringa. Non riceverai il digest previsto (spesso calcolato su ASCII o UTF-8 carattere).
Esempio: hello darà 14cde7c9ad35de5a37fce2ac276742175028fd9f7cdf0dae01ff508b126429d9 come SHA-256 sulla ASCII/UTF-8 rappresentazione della stringa e darà 18fe2820b38427a08a5b49fb4d71a7027799bfe050d3050ca4d3491a85a aa0eb sul UTF-16 rappresentazione.