标签:结果 数据库 md5值 class 传输 python 存在 添加 难度
加密算法
hash:在前面内置方法也讲到过,给任意一个字符串,可以把他变成数字
他基本上是唯一的,但也有重复的可能性,他不可以通过后面的数字反解出alex,那别人拿到这个数也没用,他不知道写的是什么,基于这一特性,应用于各种加密算法(登陆网站的密码之类的其实都基于hash),但真正的加密是通过利用hash的这个基础又加了一些别的东西
Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。
简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
HASH主要用于信息安全领域中加密算法,他把一些不同长度的信息转化成杂乱的128位的编码里,叫做HASH值.也可以说,hash就是找到一种数据内容和数据存放地址之间的映射关系
MD5讯息摘要演算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码杂凑函数,可以产生出一个128位的散列值(hash value),用于确保信息传输完整一致。MD5的前身有MD2、MD3和MD4。
我们只要知道,MD5是基于hash的,网站,登陆密码等都是基于MD5
MD5功能
输入任意长度的信息,经过处理,输出为128位的信息(数字指纹);(相当于16个字符的一段值)
不同的输入得到的不同的结果(唯一性);
md5的特性是,不管什么平台,是一定的,这相对于hash来说,更近了一步,可以保证数据的完全一致性,是他的特性,唯一性。
应用到一个场景当中,就是数字签名:别人和我买了一个娃娃,我通过网络发一给他邮箱
,里边有我的账户信息,被黑客截到篡改成黑客的账户,那么用户可能就把钱打给黑客了
,那怎么避免呢。可以再发邮件之前,全部md5一下,就会得到一串数字,用户打电话确认一下
,也是这串数字,那么这个信息就是一致的,没有被篡改过,因为只要输入是确定的,那么输出也一定是确定的,也就是说数据源不变,生成的值也不会变,也就会保证了数据的一致性
MD5算法的特点
MD5算法是否可逆?
MD5不可逆的原因是其是一种散列函数,使用的是hash算法,在计算过程中原文的部分信息是丢失了的。
MD5用途
防止被篡改:
比如发送一个电子文档,发送前,我先得到MD5的输出结果a。然后在对方收到电子文档后,对方也得到一个MD5的输出结果b。如果a与b一样就代表中途未被篡改。
比如我提供文件下载,为了防止不法分子在安装程序中添加木马,我可以在网站上公布由安装文件得到的MD5输出结果。
SVN在检测文件是否在CheckOut后被修改过,也是用到了MD5.
防止直接看到明文:
防止抵赖(数字签名):
网上的破解密码不可信,他不是反解,而是撞库,就是说在他自己的数据库里找
标签:结果 数据库 md5值 class 传输 python 存在 添加 难度
原文地址:https://www.cnblogs.com/xiaobai-yemao/p/9021923.html