3

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

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

4

1 回答 1

15

有人说这是因为MessageDigest是单身人士

那将是你的 MessageDigest对象。不是班级本身。MessageDigest.getInstance()总是返回一个新实例:参见 Javadoc。

而不是线程保存。

线程安全。

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

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

于 2011-10-09T03:33:13.287 回答