ユニコード文字列のSHA1ハッシュを取得しようとしました。一部の中国語文字列 がEclipseのAndroid Javaコードにあります。私は、通常のMessageDigestクラス と、Webからのコードのいくつかの16進変換を使用しました。ユニコード用Java SHA1?
ハッシュとその16進数の変換が正しいことを確認する方法を知りたいですか? その中国語の文字列をいくつかのオンラインハッシュコンバータに挿入しましたが、 のすべてが異なるハッシュを生成しました。同じカバー文字は、 ASCII文字列でうまく動作します。
私はこれで初心者ですので、いくつかの指摘に感謝します!
br、perza
アイデアは、サーバーにハッシュコードを格納することです。ユーザーが異なるハンドセットからログインすると、ハッシュのみがサーバーに渡されます。したがって、異なるOS間で同じハッシュを生成する必要があります。ここで私の初心者を赦してください。しかし、これは純粋なアスキーでしか動作しないようです。それは本当ですか?したがって、私は変換する必要があると仮定します。最初にbase64を実行し、次にSHAをプラットフォーム間で互換性があるようにしますか? – perza
@perza:いいえ、絶対にありません。テキストをバイナリに一貫して変換してから、UTF-8またはUTF-16を使用するのが適切でしょう。すべてのハンドセット(およびサーバー)のコードが同じエンコーディングを使用していることを確認できれば、すべてうまくいくでしょう。 –
だから私は、オンラインのハッシュジェネレータは、ユニコード文字列を正しく処理することはできませんし、異なる結果を生成すると仮定します。さて、私はそれが十分に良い答えだと信じています:) – perza