文字列をハッシュする小さなメソッドで作業しています。情報を探していると、ここで MessageDigest がこのタスクの作成に役立つことがわかりました。
しかし今、私は質問があります。Java で文字列をハッシュする手順は常に同じようです。
- MessageDigester を作成し、使用するアルゴリズムを指定します。
- ハッシュする文字列で MessageDigester を更新します
- 次に、MessageDigester.digest を呼び出すと、byte[] が取得されます。
ハッシュの最もよく使用される関数の 1 つがこのハッシュの文字列バージョンを取得することである場合、なぜ (私が参照した質問やその他の質問で) convToHex メソッドを実装する必要があるのでしょうか?
private static String convToHex(byte[] data) {
StringBuilder buf = new StringBuilder();
for (int i = 0; i < data.length; i++) {
int halfbyte = (data[i] >>> 4) & 0x0F;
int two_halfs = 0;
do {
if ((0 <= halfbyte) && (halfbyte <= 9))
buf.append((char) ('0' + halfbyte));
else
buf.append((char) ('a' + (halfbyte - 10)));
halfbyte = data[i] & 0x0F;
} while(two_halfs++ < 1);
}
return buf.toString();
}
MessageDigester によって返されたバイト [] と文字列の間でこの解析を行うことができる Java メソッドはありますか?? 存在する場合、どこにありますか?? そうでない場合、なぜ独自の方法を作成する必要があるのですか?
ありがとう。