2 回答
TA贡献1784条经验 获得超2个赞
哈希是一种单向函数,它将多个值映射到一个结果,这意味着您无法在给定结果的情况下找到原始值。
然而,存储原始值和哈希结果的数据库确实存在,因此 MD5 哈希确实不利于安全。例如,如果您给我哈希值e10adc3949ba59abbe56e057f20f883e,我可以搜索原始值,如果幸运的话,我会发现123456是该哈希结果的可能答案。
TA贡献1827条经验 获得超9个赞
我认为您很难识别加密和散列之间的区别。尽管它们都与密码学领域相关,但它们解决的问题不同。它们都用于安全地存储数据,但解决问题的方式差异很大。
这里要注意的关键是 - 散列是一种单向函数,而加密则不是。
一个非常简单且安全的散列算法将需要一个字符串(或任何类型的数据)作为参数,这就是创建散列字符串(或数据)所需的全部内容。然而,作为旁注,为了提高算法的安全性,他们采用其他参数,例如盐。但为了简单起见,可以安全地忽略这一点。一旦获得散列数据,就不可能将其恢复到实际状态(未散列),因为这会违背对其进行散列的目的。
另一方面,加密是双向的。与散列一样,它的目的是打乱数据,以便没有人可以读取或理解它,但在这种情况下,我们希望恢复数据。为了实现这一点,算法中还有一个重要的参数——密钥!此密钥用于加密算法(例如 AES)以及要加密的数据以创建加密数据。然而,在这种情况下,我们可以使用我们使用的密钥检索原始数据。
TL;DR - 两者都有自己的使用场所。使用加密增加了正确处理密钥的责任,而散列则消除了这种麻烦,但代价是无法检索原始数据。
- 2 回答
- 0 关注
- 116 浏览
添加回答
举报