gpt4 book ai didi

java - MessageDigest.update(byte[]) 是做什么的?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:54:31 24 4
gpt4 key购买 nike

这到底是做什么的?我试图查找它,但没有找到任何东西。

提问的原因是我想将 SALT byte[] 合并到一个值中,然后对其进行哈希处理。那么应该这样做吗(伪代码):

MessageDigest.update(SALT);
MessageDigest.update(value);
digestValue = MessageDigest.digest();
// Where SALT, value and digestValue are array bytes, byte[]

这是将 SALTvalue 添加到最终摘要中,还是我应该将两个变量合并为一个,然后更新一次?

我在任何文档中都找不到这个问题的答案,如有任何说明,我们将不胜感激。

谢谢你,干杯。

最佳答案

MessageDigest 是有状态的,调用 MessageDigest.update(byte[] input) 会累积摘要更新,直到我们调用 MessageDigest.digest。运行此测试以确保:

    MessageDigest md1 = MessageDigest.getInstance("MD5");
md1.update(new byte[] {1, 2});
md1.update(new byte[] {3, 4});
System.out.println(Arrays.toString(md1.digest()));

MessageDigest md2 = MessageDigest.getInstance("MD5");
md2.update(new byte[] {1, 2, 3, 4});
System.out.println(Arrays.toString(md2.digest()));

输出

[8, -42, -64, 90, 33, 81, 42, 121, -95, -33, -21, -99, 42, -113, 38, 47]
[8, -42, -64, 90, 33, 81, 42, 121, -95, -33, -21, -99, 42, -113, 38, 47]

关于java - MessageDigest.update(byte[]) 是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17786670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com