哈希和验证
需要更多信息。
加密哈希函数是具有三个重要属性的一类函数的成员; 一致性,独特性和不可逆性。
一致性: 给定相同的数据,哈希函数将始终返回相同的值。也就是说,如果 X = Y,则对于散列函数 f,f(x)
将始终等于 f(y)
。
唯一性: 哈希函数的两个输入都不会产生相同的输出。也就是说,如果 X != Y,f(x)
!= f(y)
,对于 X 和 Y 的任何值。
不可逆性: 如果不是不可能的话,反转散列函数是不切实际的。也就是说,只给出 f(X)
,就没有办法找到原始 X 不能通过函数 f(强力)放置 X 的每个可能值。应该没有函数 f1 使得 f1(f(X)
)= X.
许多功能缺少这些属性中的至少一个。例如,已知 MD5 和 SHA1 具有冲突,即具有相同输出的两个输入,因此它们缺乏唯一性。目前被认为是安全的一些功能是 SHA-256 和 SHA-512。