2

我在将字符串转换为字节数组以对其进行哈希处理时遇到了一个奇怪的问题。现在,我的代码是这样的:

    String textToHash = "test"; 
    MessageDigest messageDigest = MessageDigest.getInstance("MD5");
    messageDigest.update(textToHash.getBytes("UTF-8"));
    hash = messageDigest.digest();

即使字符串相同,但在不同的运行中,字节数组(从 生成textToHash.getBytes("UTF-8"))会发生变化。有时它只有一个值,有时它会改变,即使字符串是静态的。为什么会发生这种情况,我怎样才能使它可靠地散列一个字符串?

谢谢!

4

1 回答 1

2

更新前调用 MessageDigest.reset

http://docs.oracle.com/javase/7/docs/api/java/security/MessageDigest.html#reset()

于 2013-01-24T14:22:21.100 回答