【发布时间】:2012-06-11 13:24:46
【问题描述】:
我正在尝试一个例子:
String hashAlgorithm ="sha-256"
...
md=MessageDigest.getInstance(hashAlgorithm);
byte[] enteredPasswordDigest = md.digest(policy.getPassword().getBytes());
if (!MessageDigest.isEqual(enteredPasswordDigest, realPassword.getBytes())) {
...
}
但是,散列密码作为字符串存储在数据库中。当我进行比较时,它失败了。当我调试它时,enteredPasswordDigest 的长度为 32 字节,realPassword.getBytes() 的长度为 64 字节。
我错过了什么?
【问题讨论】:
-
你确定 realPassword.getBytes() 的长度是 64 位(=8 字节)而不是字节吗?因为我不知道可以创建 64 位输出的安全哈希函数。