Las funciones SHA256 y SHA512 devuelven un hash incorrecto

Descubra cómo la codificación de la base de datos afecta a los valores hash en el Adobe. Explore la solución a las discrepancias de funciones SHA256 y SHA512.

Descripción description

Entorno

  • Campaign
  • Campaign Classic

Problema/Síntomas

El cliente informó que las funciones SHA256 y SHA512 devuelven un hash incorrecto.

A continuación, el enlace muestra que otro usuario también ha planteado el mismo problema:

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

Resolución resolution

Un cliente ha compartido una solución:

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

Para las funciones SHA256 y SHA512, funciona normalmente, pero devuelve valores diferentes de hash para varchar y nvarchar.

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

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

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

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

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