消息摘要java

时间:2014-06-17 11:41:36

标签: java digest message-digest

我以前不知道MessageDigest课程。我现在正在尝试理解一段代码,文档对我没什么帮助。

MessageDigest digest = Crypto.sha256();

digest.update(last.getSign());
byte[] SignHash = digest.digest(publicKey);

根据java文档:

  

“更新”使用给定的MessageDigest

更新此byte[]

“digest”执行最终更新,然后计算并返回此MessageDigest的最终哈希值。

问题1:“使用给定字节[]更新”真正意味着什么?

问题2:“摘要”执行的最终更新是什么?

以上是否意味着SignHash=sha256(last.getSign() concat(公钥的一些填充))?

1 个答案:

答案 0 :(得分:2)

将MessageDigest类想象为更新它实际上是将更多字节附加到内部缓冲区。现在,一旦完成,您可以使用摘要方法创建附加到缓冲区的所有字节的散列。

命名可能看起来有点奇怪(我当然认为" appendBytes"" createHash" /" createDigest"本来会更好),但想一想MessageDigest实例,其中更新的内部状态包含更多字节,直到您最终生成摘要