次のコードを使用して、着信文字列をハッシュします。同じメソッドを複数回メソッドに適用すると、常に同じ結果が得られます。このシナリオは、パスワードハッシングとそれ以降の検証のためのものです。しかし、それは動作していないようです - 私は同じ入力文字列の2つの異なるブロブを得ました。私のコードに間違いや欠落がありますか?SHAは同じ文字列を異なるブロブにハッシュします
System.out.println("raw = " + raw.toString());
を行うには何もを持っていない[[email protected]
のようなものをプリントアウトするために起こっていること:あなたが本当に十分な情報を与えられていないが、私はあなたがこのに気を取られている疑いがある
public synchronized String encrypt(String token) {
try {
MessageDigest sha = MessageDigest.getInstance("SHA");
sha.reset();
sha.update(token.getBytes("UTF-8"));
byte[] raw = sha.digest();
System.out.println("raw = " + raw.toString());
String hash = Base64.encodeBase64(raw).toString();
return hash;
} catch (Exception e) {
}
return token;
}
関連する言語のタグを追加します。私は 'Java'を追加することを忘れてしまったと思います。 –
ありがとうございました。 – tom
SHAは** NOT **の暗号化です。 – Dan