对于应用程序原型,我正在创建一个简单的用户登录。然后将使用 sha224 对用户的密码进行哈希处理并传输到后端。我现在面临的问题如下。存储在数据库中的密码(也使用 sha224 散列)似乎与我发送的散列有点不同。我使用以下代码来创建哈希。
给定密码 == 测试
Python
from hashlib import sha224
sha224("test").hexdigest()
安卓
MessageDigest sha224 = MessageDigest.getInstance("SHA-224");
sha224.update(key.getBytes());
byte[] digest = sha224.digest();
StringBuffer buffer = new StringBuffer();
for(int i = 0; i < digest.length; i++) {
buffer.append(String.valueOf(Integer.toHexString(0xFF & digest[i])));
}
return buffer.toString();
现在将生成的内容如下所示,我将两个散列直接发布在彼此下方。(第一个是python,第二个是android)
90a3ed9e32b2aaf4c61c410eb925426119e1a9dc53d4286ade99a809 90a3ed9e32b2aaf4c61c41eb925426119e1a9dc53d4286ade99a89
它们几乎相同,但 python 哈希值多了两个 0。你们知道为什么吗?