66得票2回答
信息摘要、消息认证码和HMAC有什么区别?

我理解的消息摘要是一种加密哈希值,随着加密数据一起发送,以便您可以验证数据未被篡改。那么,这与消息认证码(MAC)和哈希MAC(HMAC)有什么区别呢? 我的理解消息认证码(MAC)和哈希MAC(HMAC)是使用密钥和哈希算法来生成一个比消息摘要更强的校验值,以验证数据的完整性和真实性,并且...

44得票3回答
在Java中需要线程安全的MessageDigest

我需要在多线程环境下使用MessageDigest对多个密钥进行哈希,这是一个性能关键的场景。我了解到MessageDigest不是线程安全的,因为它在其对象中存储其状态。如何实现线程安全的密钥哈希可能是最佳方式? 用例:MessageDigest messageDigest = Messa...

39得票4回答
每个安卓手机都支持SHA-256吗?

阅读这篇文章:如何在Android中计算字符串的SHA-256哈希值? 以及文档:http://developer.android.com/reference/java/security/MessageDigest.html 我很好奇,哪些手机支持SHA-256?在文档中,关于“NoSuc...

20得票6回答
破碎哈希函数何时使用是安全的?

使用安全哈希函数(例如SHA-256)是非常简单的,而继续使用MD5来保证安全性则是不负责任的行为。然而,哈希函数漏洞中存在一些复杂性,我希望能更好地理解。 已经生成了MD4和MD5的碰撞。根据NIST的说法,MD5不是安全的哈希函数。只需2¹⁹次操作即可生成碰撞,不应该用于密码。然而,SH...

12得票2回答
如何在不捕获NoSuchAlgorithmException的情况下使用Java MD5 MessageDigest?

在Java中,如果我想计算一个MD5摘要,我需要注意可能出现的异常: try { MessageDigest md = MessageDigest.getInstance("MD5"); // Do stuff } catch (NoSuchAlgorithmException ...

11得票1回答
MessageDigest.update(byte[])是做什么的?

这具体是做什么的?我试着查找了一下但没有找到任何信息。 问这个的原因是因为我想将一个SALT byte[]合并到一个值中,然后对其进行哈希处理。所以应该像这样做(伪代码):MessageDigest.update(SALT); MessageDigest.update(value); dig...

9得票3回答
不同的JDK版本会生成不同的Java MessageDigest MD5哈希值吗?

我正在使用Java消息摘要创建MD5哈希,用于身份验证。该MD5哈希作为varchar2存储在数据库中。我在我的本地笔记本电脑上的Tomcat服务器上进行了测试以创建用户。当我将war文件部署到Linux Redhat上的测试Tomcat服务器上时,由于哈希不匹配,身份验证失败。我检查了用户名...

9得票3回答
为什么哈希输出长度固定?

哈希函数始终会产生固定长度的输出,无论输入如何(例如,MD5>> 128位,SHA-256>> 256位),但为什么呢? 我知道这是设计者设计它们的方式,但他们为什么要设计输出具有相同的长度呢?为了能够以一致的方式存储吗?更容易比较?更简单?

8得票1回答
如何为com.google.appengine.api.blobstore.BlobInfo计算md5Hash

我们正在努力避免保存重复的文件。然而,我们的 md5 结果总是与 BlobInfo 不同。 我们的计算方法如下: MessageDigest messageDigest = java.security.MessageDigest.getInstance("MD5"); di...

8得票2回答
在Android中,使用MessageDigest时,是否保证可以使用MD5?

我想知道在所有 Android 设备中是否保证 MD5 摘要算法可用,以便在忽略 MessageDigest.getInstance("MD5") 可能引发的已检查异常之前进行。