我之前不知道 MessageDigest
类。我现在试图理解一段代码,而文档对我帮助不大。
MessageDigest digest = Crypto.sha256();
digest.update(last.getSign());
byte[] SignHash = digest.digest(publicKey);
根据java文档:
"update" Updates this
MessageDigest
using the givenbyte[]
“digest”执行最终更新,然后计算并返回此 MessageDigest 的最终哈希值。
问题 1:“使用给定的 byte[] 进行更新”的真正含义是什么?
问题2:“digest”最终执行的更新是什么?
以上是否意味着SignHash=sha256(last.getSign()
concat(公钥的一些填充))?
最佳答案
将 MessageDigest 类视为更新它实际上是将更多字节附加到内部缓冲区。现在,完成后,您可以使用摘要方法创建附加到缓冲区的所有字节的哈希值。
命名可能看起来有点奇怪(我当然认为“appendBytes”和“createHash”/“createDigest”会更好),但是想想 MessageDigest 实例,您更新了哪个内部状态 使用更多字节,直到最终生成摘要。
关于java - 消息摘要java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24262855/