SHA256 関数と SHA512 関数が間違ったハッシュを返す
データベースエンコーディングがAdobe Campaignのハッシュ値に与える影響を説明します。 SHA256 関数と SHA512 関数の不一致の解決策を調べます。
説明 description
環境
- Campaign
- Campaign Classic
問題/症状
SHA256 関数と SHA512 関数が間違ったハッシュを返すことが報告されました。
以下のリンクは、他のユーザーも同じ問題を提起していることを示しています。
解決策 resolution
ユーザーがソリューションを共有しました:
この問題は、DB が Unicode エンコーディングを使用している場合に、Adobeが文字列データ型を varchar
ではなく nvarchar
に変換するために発生しました。 この場合、データベースエンコーディングのデフォルト値は、タイ語 をサポートする Unicode として使用されます。 そのため、Adobeは文字列を nvarchar
に変換しました。
関数 SHA256 と SHA512 では通常どおりに動作しますが、varchar
と nvarchar
ではハッシュの値が異なります。
この場合、(携帯電話番号のみを含む)そのフィールドを変更して、正しくハッシュ化する varchar
とが可能でした。
さらに、SQL Server を使用する場合、ダイジェスト関数は文字列の UTF-16 表現を使用します。 期待されるダイジェスト(多くの場合、ASCII または UTF-8 文字で計算されます)は取得されません。
例:hello は、文字列の ASCII/UTF-8 表現で、14cde7c9ad35de5a37fce2ac276742175028fd9f7cdf0dae01ff508b126429d9 を SHA-256 として付与し、18fe2820b38427a08a5b49fb4d71a7027799bfe00050 を 0 します。UTF-16 表現の 3050ca4d3491a85aa0eb