1
JavaでMD5ハッシュ生成のコードを取得しました。これは、バイト配列「バイト」のハッシュを生成し、整数に変換し、文字列に次のようバイトで整数に変換してからJavaで文字列に変換する
byte[] bytes=md.digest(textToHash.getBytes());
StringBuilder sb=new StringBuilder();
for(int i=0;i<bytes.length;i++)
sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1));
私はbytes[i] & 0xff
は32ビット長コピーの最下位バイトまでのバイトの整数にバイトを変換することを理解しました整数:
What does value & 0xff do in Java?
私は+ 0x100, 16
は、上記のコードの行4で、括弧の中に何をするか理解できませんでしたが。あなたの助けに感謝します。
ありがとうございますが、それは何ですか、16? –
'16'は* radix *です。つまり16進数の16進数です。コードは基本的に '' 1 '' – Bohemian
の代わりに' '01''として '1'を出力します。私はフォーラムでも簡単な方法を見つけました:sb.append(String.format( "%02X"、bytes [i])); –