非常にシンプルなCS質問です。私はそれがBSD unix md5ハッシュビット値
The algorithm takes as input a message of arbitrary length and
produces as output a 128-bit "fingerprint" or "message digest" of the input.
そのMD5は、与えられた入力に対して128ビット= 16バイトのハッシュを生成し、言って言うMD5 documentation, RFC 1321を読んでいました。
次に、UNIX/Macosでmd5
スクリプトを使用するか、MD5 online generatorを使用すると、生成する32文字の長さのハッシュが32バイトになります。 (1文字= 1バイトは私の理解です)
例:
$ md5 <<<"1"
b026324c6904b2a9cb4b88d6d61c81d1
$ printf "b026324c6904b2a9cb4b88d6d61c81d1" | wc -c
32
しかし、私はjava
MD5 APIを使用するとしようとすると、それは私のマニュアルに従って真実である16バイトのハッシュを提供します。
scala> import java.security.MessageDigest
import java.security.MessageDigest
scala> MessageDigest.getInstance("MD5").digest("1".getBytes)
res0: Array[Byte] = Array(-60, -54, 66, 56, -96, -71, 35, -126, 13, -52, 80, -102, 111, 117, -124, -101)
scala> val hash = MessageDigest.getInstance("MD5").digest("1".getBytes("UTF-8")).length
hash: Int = 16
質問は私がmd5
(BSD unixツール)で見つからなかったものです。
https://stackoverflow.com/q/6317276/432903 – prayagupd