欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python 摘要算法

程序员文章站 2023-03-26 11:49:40
一、概述: 摘要算法主要特征是加密过程不需要密钥,并且加密的数据无法解密,只有输入相同的明文数据经过相同的摘要算法才能得到相同的密文。摘要算法主要应用在“数字签名”领域。接下来会讲述RSA公司的MD5算法和SHA-1算法。 二、原理: 通过一个函数,把任意长度的数据转换成一个长度固定的数据串(通常用 ......

一、概述:

  摘要算法主要特征是加密过程不需要密钥,并且加密的数据无法解密,只有输入相同的明文数据经过相同的摘要算法才能得到相同的密文。摘要算法主要应用在“数字签名”领域。接下来会讲述rsa公司的md5算法和sha-1算法。

二、原理:

  通过一个函数,把任意长度的数据转换成一个长度固定的数据串(通常用16进制的字符串表示)

三、md5算法:

  md5算法最常见的摘要算法,生成速度快,生成结果是128位,通常用32位的16进制字符串表示。

  python中使用:

  python 摘要算法

四、sha-1算法:

  调用与md5完全一样,sha1通常是160字节,通常用40位16进制字符串表示

  python中使用:

  python 摘要算法

五、应用:  

  任何允许用户登录的网站都会存储用户登录的用户名和密码,那么密码一般存储的是原密码的摘要值,正确保存口令方式不是存储明文内容,而是存储口令的摘要;当用户登录时,首先计算用户输入明文口令的摘要,和数据库对比,如果一致则说明口令正确,否则一定错误。

六、注意:

  1、越安全的算法不仅越慢,而且摘要会越长

  2、有可能两个不同数据通过hashlib算法后得到了相同的摘要,因为摘要算法是将无限多的数据映射到有限的集合中。如果两个摘要数据相同,称之为碰撞。出现几率极其小。