MessageDigest ArrayIndexOutOfBoundsException
我在项目中使用 MessageDigest 来计算 md5 签名,但在性能测试期间它抛出了 ArrayIndexOutOfBoundsException 。
我发现一些帖子表明这是因为 MessageDigest
是单例且不是线程安全的。有谁知道我如何解决这个问题,或者是否有一个等效的线程安全的 MessageDigest
类?
I use MessageDigest
to calculate the md5 signature in my project, but during the performance test it throws an ArrayIndexOutOfBoundsException
.
I have found a few posts that suggest this is because MessageDigest
is a singleton and not thread safe. Does anyone know how I can get around this problem, or if there is an equivalent MessageDigest
class that is thread safe?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
那将是你的
MessageDigest
对象。不是班级本身。MessageDigest.getInstance()
始终返回一个新实例:请参阅 Javadoc。线程安全。
不要在多个线程之间共享您的
MessageDigest
实例。甚至不要将其设为类成员:将其设为调用它的方法中的局部变量。That would be your
MessageDigest
object. Not the class itself.MessageDigest.getInstance()
always returns a new instance: see the Javadoc.Thread safe.
Don't share your
MessageDigest
instance among multiple threads. Don't even make it a class member: make it a local variable in the method(s) that call it.