Ambiente
Problema/Sintomas
O cliente relatou que as funções SHA256 e SHA512 retornam um hash errado.
O link abaixo mostra que outro usuário também levantou o mesmo problema: https://experienceleaguecommunities.adobe.com/t5/adobe-campaign-classic-questions/sha256-and-sha512-function-returns-wrong-hash/qaq-p/351035/comment-id/3882
Um cliente compartilhou uma solução:
O problema ocorreu porque o Adobe converte o tipo de dados da cadeia de caracteres para nvarchar
em vez de varchar
no caso em que o DB está usando a codificação Unicode. No caso do cliente, o padrão de codificação do banco de dados é usado como Unicode para oferecer suporte à variável Tailandês idioma. Portanto, o Adobe converteu a cadeia de caracteres em nvarchar
.
Para as funções SHA256 e SHA512, funciona normalmente, mas retornará valores diferentes de hash para varchar
e nvarchar
.
No caso do cliente, foi possível alterar esse campo (contendo apenas um número de celular) para varchar
e o hash corretamente.
Artigo da Comunidade Adobe:
https://experienceleaguecommunities.adobe.com/t5/adobe-campaign-classic-questions/sha256-and-sha512-functions-returning-wrong-hash/qaq-p/351034
Além disso, se o SQL Server for usado, a função de compilação usará o UTF-16 representação da string. Você não obterá o resumo esperado (que geralmente é calculado em ASCII ou UTF-8 caractere).
Exemplo: hello dará 14cde7c9ad35de5a37fce2ac276742175028fd9f7cdf0dae01ff508b126429d9 como SHA-256 no ASCII/UTF-8 representação da string e dará 18fe2820b38427a08a5b49fb4d71a7027799bfe0050d3050ca4d3491a85c aa0eb no UTF-16 representação.