SHA256和SHA512函数返回错误的哈希

了解数据库编码如何影响Adobe Campaign中的哈希值。 探索SHA256和SHA512功能中差异的解决方案。

描述 description

环境

  • Campaign
  • Campaign Classic

问题/症状

据报告,SHA256和SHA512函数返回错误的哈希。

下面的链接显示,其他人也提出了同样的问题:

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

解决方法 resolution

用户已共享解决方案:

出现该问题的原因是,在数据库使用Unicode编码的情况下,Adobe将字符串数据类型转换为nvarchar而不是varchar。 在这种情况下,数据库编码默认值将用作Unicode以支持​ 泰语 ​语言。 因此,Adobe将字符串转换为nvarchar

对于函数 SHA256SHA512,它可正常使用,但会返回varcharnvarchar的不同哈希值。

在这种情况下,可以将该字段(仅包含手机号码)更改为varchar并正确对其进行哈希处理。

Adobe社区文章:
https://experienceleaguecommunities.adobe.com/t5/adobe-campaign-classic-questions/sha256-and-sha512-functions-returning-wrong-hash/qaq-p/351034

此外,如果使用SQL Server,则摘要函数将使用字符串的 UTF-16 表示形式。 您不会获得预期的摘要(通常按 ASCIIUTF-8 字符计算)。

示例: hello ​将在字符串的 ASCII/UTF-8 表示形式上将14cde7c9ad35de5a37fce2ac276742175028fd9f7cdf0dae01ff508b126429d9表示为 SHA-256,并且将提供18fe2820b38427a08a5b49fb4d71a7027799bfe005在 UTF-16 表示法上的0d3050ca4d3491a85aa0eb。

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