Las funciones SHA256 y SHA512 devuelven un hash incorrecto

Descripción

Entorno

  • Campaign
  • Campaign Classic

Problema/Síntomas
El cliente informó que las funciones SHA256 y SHA512 devuelven un hash incorrecto.

El siguiente enlace muestra que otros usuarios también han planteado el mismo problema: https://experienceleaguecommunities.adobe.com/t5/adobe-campaign-classic-questions/sha256-and-sha512-function-returns-wrong-hash/qaq-p/351035/comment-id/3882?profile.language=es

Resolución

Un cliente ha compartido una solución:

El problema se ha producido porque el Adobe convierte el tipo de datos de cadena en nvarchar en lugar de varchar en el caso en que la base de datos utilice codificación Unicode. En el caso del cliente, la codificación de base de datos predeterminada se utiliza como Unicode para admitir la variable Tailandés idioma. Por lo tanto, el Adobe convirtió la cadena en nvarchar.

Para las funciones SHA256 y SHA512, funciona como de costumbre, pero devolverá diferentes valores de hash para varchar y nvarchar.

En el caso del cliente, era posible cambiar ese campo (que contenía solo un número de móvil) a varchar y hash correctamente.

Artículo de la comunidad de Adobe:
https://experienceleaguecommunities.adobe.com/t5/adobe-campaign-classic-questions/sha256-and-sha512-functions-returning-wrong-hash/qaq-p/351034?profile.language=es?profile.language=es

Además, si se utiliza SQL Server, la función de compendio utiliza la variable UTF-16 representación de la cadena. No obtendrá el compendio esperado (que a menudo se calcula en ASCII o UTF-8 ).

Ejemplo: hello dará 14cde7c9ad35de5a37fce2ac276742175028fd9f7cdf0dae01ff508b126429d9 como SHA-256 en el ASCII/UTF-8 representación de la cadena y dará 18fe2820b38427a08a5b49fb4d71a7027799bfe0050d3050ca4d3491a85a aa0eb en el UTF-16 representación.

En esta página