U8国际 U8国际官方网站 体育APP下载Python的哈希hashlib模块详细解读
栏目:U8哈希 发布时间:2025-06-14
  u8,u8国际,u8国际官方网站,u8国际网站,u8国际网址,u8国际链接,u8体育,u8体育官网,u8体育网址,u8注册,u8体育网址,u8官方网站,u8体育APP,u8体育登录,u8体育入口   hashlib是一个提供字符加密功能的模块,包含MD5和SHA的加密算法,具体支持md5,sha1, sha224, sha256,

  u8,u8国际,u8国际官方网站,u8国际网站,u8国际网址,u8国际链接,u8体育,u8体育官网,u8体育网址,u8注册,u8体育网址,u8官方网站,u8体育APP,u8体育登录,u8体育入口

U8国际 U8国际官方网站 U8体育APP下载Python的哈希hashlib模块详细解读

  hashlib是一个提供字符加密功能的模块,包含MD5和SHA的加密算法,具体支持md5,sha1, sha224, sha256, sha384, sha512等算法。 该模块在用户登录认证方面应用广泛,对文本加密也很常见。

  **哈希算法(Hash Algorithm):**简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数;哈希算法是一种压缩映射,也就是说散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值

  3)只要使用的哈希算法不变,无论校验的内容是否一样,得到的哈希长度是固定的.

  加盐(salt)加密(简称“加盐”)是一种对系统登录口令的加密方式,它实现的方式是将每一个口令同一个叫做”盐“(salt)的n位随机数相关联

  无论何时只要口令改变,随机数就改变;随机数以未加密的方式存放在口令文件中,这样每个人都可以读;不再只保存加密过的口令,而是先将口令和随机数连接起来然后一同加密,加密后的结果放在口令文件中

  注意:向对象中传入字符串时,必须为编码类型。可以使用字符串前b 的方法或使用.encode(UTF-8)的方法,使字符串变为bytes类型。

  下面我们将引入一个简单的实力来说明最常用的MD5算法在实际中的应用。在引入实力前,让我们先对MD5的基本特性有个认识。

  容易计算:从原数据计算出的MD5值很容易。不管数据多大,很快就能算出一串MD5字符串来。

  抗修改性:对原数据进行任何改动,哪怕修改任何一个字节,生成的MD5值也有会很大的区别。

  强抗碰撞:已知原数据和MD5,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。

  好啦,那我们已经知道了MD5算法的特点。那么问题来了,MD5既然每次生成的值都是固定的。那么虽然是单向生成不可反推,但是如果通过碰撞方法对字符串生成MD5后与MD5值碰撞,是不是就会得到MD5对应的字符串了呢?答对了!这样是可以的,换句话说,如果某用户数据库泄露了,拿到了密码库中的MD5就能通过碰撞的方法将密码破解出来。那么问题又来了,既然这样,那也没有什么用了啊。。非也,让我们用一个小小的技巧,让这个碰撞方法失效。这个方法就是“加盐”,什么是加盐呢?

  “加盐”就是对原密码添加额外的字符串,然后再生成MD5值,这样就没有办法进行破解了,除非拿到“加盐”字符串,但碰撞方法也是需要一个一个重新计算MD5值后再进行碰撞对比的,难度也是极其大的。那么看下面的代码吧:

  到此这篇关于Python的哈希hashlib模块详细解读的文章就介绍到这了,更多相关Python的hashlib模块内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!