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?profile.language=ja

解決策 resolution

ユーザーがソリューションを共有しました:

この問題は、DB が Unicode エンコーディングを使用している場合に、Adobeが文字列データ型を varchar ではなく nvarchar に変換するために発生しました。 この場合、データベースエンコーディングのデフォルト値は、タイ語 をサポートする 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?profile.language=ja

さらに、SQL Server を使用する場合、ダイジェスト関数は文字列の UTF-16 表現を使用します。 期待されるダイジェスト(多くの場合、ASCII または UTF-8 文字で計算されます)は取得されません。

例:hello は、文字列の ASCII/UTF-8 表現で、14cde7c9ad35de5a37fce2ac276742175028fd9f7cdf0dae01ff508b126429d9 を SHA-256 として付与し、18fe2820b38427a08a5b49fb4d71a7027799bfe00050 を 0 します。UTF-16 表現の 3050ca4d3491a85aa0eb

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