MessageDigest ArrayIndexOutOfBoundsException

时间:2011-10-09 03:25:59

标签: java md5 indexoutofboundsexception

我使用MessageDigest计算项目中的md5签名,但在性能测试期间会抛出ArrayIndexOutOfBoundsException

我发现一些帖子表明这是因为MessageDigest是一个单例,而不是线程安全的。有谁知道如何解决这个问题,或者是否存在一个线程安全的等效MessageDigest类?

1 个答案:

答案 0 :(得分:11)

  

有人说这是因为MessageDigest是单身

那将是您的 MessageDigest对象。不是班级本身。 MessageDigest.getInstance()始终返回一个新实例:请参阅Javadoc。

  

而不是线程保存。

线程安全。

  

现在,任何人都知道如何解决这个问题

不要在多个线程之间共享您的MessageDigest实例。甚至不要使它成为类成员,使其成为调用它的方法中的局部变量。