我以前不知道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(公钥的一些填充))?
答案 0 :(得分:2)
将MessageDigest类想象为更新它实际上是将更多字节附加到内部缓冲区。现在,一旦完成,您可以使用摘要方法创建附加到缓冲区的所有字节的散列。
命名可能看起来有点奇怪(我当然认为" appendBytes"" createHash" /" createDigest"本来会更好),但想一想MessageDigest实例,其中更新的内部状态包含更多字节,直到您最终生成摘要。