【问题标题】:MessageDigest ArrayIndexOutOfBoundsExceptionMessageDigest ArrayIndexOutOfBoundsException
【发布时间】:2011-12-03 19:33:54
【问题描述】:

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

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

【问题讨论】:

  • 我们需要查看一些代码才能为您提供帮助。

标签: java md5 indexoutofboundsexception


【解决方案1】:

有人说这是因为MessageDigest 是单身

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

而不是线程保存。

线程安全。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    • 1970-01-01
    • 1970-01-01
    • 2022-11-06
    • 2022-03-26
    • 1970-01-01
    • 2011-03-25
    相关资源
    最近更新 更多