我听说在使用MD5算法加密一些东西之后,不可能对数据进行解密。但是对于任何加密,应该有一种解密数据的方法,对吗?否则,单词加解密的需要是什么?
我说错了吗?
发布于 2014-12-12 17:35:03
基本上,MD5不是一种加密方法。
它是一个Hash function
,在这里,由于函数下的数据处理,您将丢失数据。所以你不会把旧的数据拿回来。所以,散列的全部意思是,它只是一种方式。MD5是`cryptographic">function">`cryptographic哈希函数,因此以下内容是适用的。
有些人使用MD5哈希保存用户密码。所以,即使是他们的网络服务器也不知道你的密码到底是什么。他们只有密码的标记。这就是为什么在许多网站中,当您请求一个忘记密码请求时,他们要求您更改密码,提供一个唯一的链接,而不是检索您的旧密码。(基本上,他们没有人类可读格式的密码)
因此,如果有人知道您的哈希密码令牌,您可能会有另一个疑问吗?答案很简单,但是您仍然是安全的,因为登录身份验证检查将用户输入转换为散列函数,然后使用DB进行检查。在这种情况下,将为您的哈希值获得一个新的哈希值。
发布于 2014-12-12 17:36:15
MD5是一个散列函数。
散列函数是用于将任意大小的数字数据映射到固定大小的数字数据的任何函数,而输入数据的细微差异导致输出数据有很大的差异(源:维基百科)。
这样,原始数据就不会被保存。那么你为什么要使用哈希函数呢?它对于比较任意大小的数据集很有用:由于散列可以很短,并且具有固定的大小,所以一旦计算出任何比较都是非常廉价和可预测的--不管原始数据有多大-- O(1)。
MD5也是一个加密哈希函数。加密哈希函数允许很容易地验证某些输入数据是否与存储的哈希值相匹配,但是很难仅从哈希值中重构数据。
因此,MD5的全部要点是,给定一个散列,返回原始数据应该尽可能困难。
发布于 2014-12-12 17:37:17
以下是一些很好的阅读:
https://en.wikipedia.org/wiki/MD5
长篇演讲短片: MD5基本上将任意大小的字符串映射为64位十六进制数。在这个过程中,大量的信息丢失了,没有办法让这些信息弹回来。
https://stackoverflow.com/questions/27449029
复制相似问题