java - 消息摘要java

标签 java digest message-digest

我之前不知道 MessageDigest 类。我现在试图理解一段代码,而文档对我帮助不大。

MessageDigest digest = Crypto.sha256();

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

根据java文档:

"update" Updates this MessageDigest using the given byte[]

“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/

相关文章:

java - Spring+hibernate java.lang.StackOverflowError

java - 将 JSON 数组数据分组并计算是否有两个相同的值

java - 将 SQLite 数据库转换为 csv

ruby-on-rails-4 - rails 4 image_tag 没有链接到我的消化图像 Assets

java - 为什么 Collections.sort (dateList,Collections.reverseOrder()) 会抛出 NPE

angularjs - AngularJS 何时触发摘要

string - Base64 解码 - 字符串中的 nul

java - 使用 SHA-256 算法对数据库中的密码进行加密

android - 在 android 和 iphone 上使用 salt 进行哈希处理

security - 消息摘要、消息验证码和 HMAC 之间有什么区别?