名前文字列とその SHA1 値をデータベースに渡しています。SHA 値は、検索のインデックスとして使用されます。実装が完了した後、名前の大文字と小文字を区別しないようにするという要件がありました。すべての言語を考慮する必要があります (漢字は実際の使用例です)。
私はトルコのテストについて知っています。ハッシュする前に入力文字列を変換して大文字と小文字を区別しないようにするにはどうすればよいですか? 理想的には、 InvariantCultureIgnoreCaseと同等にしたいと思います。
つまり、この関数の出力で大文字と小文字を区別しないようにするにはどうすればよいでしょうか?
private byte[] ComputeHash(string s)
{
byte[] data = System.Text.Encoding.Unicode.GetBytes(s ?? string.Empty);
SHA1 sha = new SHA1CryptoServiceProvider(); // returns 160 bit value
return sha.ComputeHash(data);
}
SHA が不可能な場合は、String.GetHashCode () を機能させることができるかもしれませんが、大文字と小文字を区別しないようにする方法もわかりません。
私はこれが不可能だと確信しています。そうでない場合、回避策は何ですか?