As funções SHA256 e SHA512 retornam hash incorreto

Saiba como a codificação do banco de dados afeta valores de hash no Adobe Campaign. Explore a solução para discrepâncias nas funções SHA256 e SHA512.

Descrição description

Ambiente

  • Campaign
  • Campaign Classic

Problema/Sintomas

Foi relatado que as funções SHA256 e SHA512 retornam um hash incorreto.

O link abaixo mostra que outra pessoa também levantou o mesmo problema:

https://experienceleaguecommunities.adobe.com/t5/adobe-campaign-classic-questions/sha256-and-sha512-function-returns-wrong-hash/td-p/351035

Resolução resolution

Um usuário compartilhou uma solução:

O problema ocorreu porque o Adobe converte o tipo de dados da cadeia de caracteres em nvarchar em vez de varchar quando o banco de dados está usando codificação Unicode. Nesse caso, o padrão de codificação do banco de dados é usado como Unicode para oferecer suporte ao idioma Thai. 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.

Nesse caso, foi possível alterar esse campo (contendo apenas um número de celular) para varchar e aplicá-lo corretamente ao hash.

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 digest usará a representação UTF-16 da cadeia de caracteres. Você não obterá o resumo esperado (que é frequentemente calculado em ASCII ou UTF-8 caractere).

Exemplo: hello dará 14cde7c9ad35de5a37fce2ac276742175028fd9f7cdf0dae01ff508b126429d9 como SHA-256 na representação ASCII/UTF-8 da cadeia de caracteres e dará 18fe 2820b38427a08a5b49fb4d71a7027799bfe0050d3050ca4d3491a85aa0eb na representação UTF-16.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f