Tag: 消息摘要

需要Java中的线程安全MessageDigest

我需要在性能关键环境中使用MessageDigest从多个线程中散列多个键。 我开始知道MessageDigest不是线程安全的,因为它将状态存储在它的对象中。 什么是实现密钥线程安全散列的最佳方法? 使用案例: MessageDigest messageDigest = MessageDigest.getInstance(“SHA-1”); //somewhere later, just need to hash a key, nothing else messageDigest.update(key); byte[] bytes = messageDigest.digest(); 特别: ThreadLocal会保证有效吗? 它会有性能损失吗? getInstance返回的对象是否不同,它们不会相互干扰? 文档说“新”对象,但我不确定它是否只是(共享)共享具体类的包装器? 如果getInstance()返回“真正的”新对象,那么每次我需要计算哈希值时,是否建议创建一个新实例? 在性能损失方面 – 它的代价是多少? 我的用例非常简单 – 只需哈希一个简单的密钥。 我不能使用同步。 谢谢,