python类模块,Python 常用模块
常用模块 - hashlib模块
一、简介
Python的hashlib提供了常用的总结算法,如MD5、SHA1、SHA224、SHA256、SHA384、SHA512等。
什么是总结算法?该算法也称为哈希算法和哈希算法。通过一个函数,它将任意长度的数据转换成固定长度的数据字符串(通常用十六进制字符串表示)。
比如你写了一篇文章,字符串为“如何使用python hash lib——by Mayi”,并附上文章摘要为“75b 850 b 26 f4e 75 B1 ad 3d b 76 a 255065 f 2”。如果有人篡改了你的文章,发表为“如何使用Python Hashlibby bob”,你可以一下子指定Bob篡改了你的文章,因为根据“如何使用Python Hashlibby Bob”计算出的摘要与原文章的摘要不同。
二、md5加密
importhashlib
hash=hashlib.md5()
hash.update(mayi )。编码( utf-8 ))
# 7d 1080 e 20427559 FCC 0 a 647826741 f 66
打印(hash . hex digest())三、sha1加密
importhashlib
hash=hashlib.sha1()
hash.update(mayi )。编码( utf-8 ))
# c 159 ce 3114 FB 4553683 cf 96d 91 db 6d 51080 c02e 8
打印(hash . hex digest())四、sha256加密
importhashlib
hash=hashlib.sha256()
hash.update(mayi )。编码( utf-8 ))
# 5 dfae 51 e 782 CCE 2 f 213 ef 6 BC 89 f 75 c 9 ab 6 C3 BD 8 a5d 1299 a 73191677 CD 5 aa 1 f 93
打印(hash . hex digest())五、sha384加密
importhashlib
hash=hashlib.sha384()
hash.update(mayi )。编码( utf-8 ))
# a1 EB 5 c 52 e 830 D5 ea 4 fdb 0 a3 DC 2241374 f 56426 aebacd 8890 a 69 c 7 db 57724788 EC 5047 a 005 ecff 4a 23310 b7f 87035926 f
Print(hash.hexdigest())相关推荐:《Python视频教程》
六、sha512加密
importhashlib
hash=hashlib.sha512()
hash.update(mayi )。编码( utf-8 ))
# 93102 EC 5658 f 739 c 060 e 3d 82096 e 538 EC 116 d0c 9d 6925119 b 465 f 0823 be 99697056518465 cc 6fe 75265 deb 26632 c8 ce 62 B3 d63 a 8782 c 492
daac2b9c03a89defe
打印(hash . hex digest())七、“加盐”加密
上面的加密算法虽然很强大,但还是有缺陷,可以通过打库来解决。因此,在加密之前,有必要在加密算法中添加一个自定义密钥。
importhashlib
hash=hashlib.md5(python )。编码( utf-8 ))
hash.update(mayi )。编码( utf-8 ))
# b 0758 ad 1 aad 20530044668775 f 389922
打印(hash . hex digest())八、摘要算法应用
算法可以应用在哪里?举一个常见的例子:
任何允许用户登录的网站都会存储用户的登录名和密码。如何存储用户名和密码?该方法存储在数据库表中:
如果用户密码以明文保存,如果数据库泄露,用户密码将全部落入黑客之手。此外,网站运营商可以访问数据库,即他们可以获得所有用户的密码。
保存密码的正确方法是存储用户密码的摘要,而不是用户的明文密码,例如MD5:
当用户登录时,首先计算用户输入的明文密码的MD5,然后与数据库中存储的MD5进行比较。如果一致,则密码输入正确;否则密码输入错误。
存储MD5的好处是,即使运维人员可以访问数据库,也无法知道用户的明文密码。
用MD5存储密码安全吗?不一定。假设你是一名黑客,你有一个存储MD5密码的数据库。如何通过MD5反转用户的明文密码?暴力破解费时费力,真正的黑客是不干的。
考虑这种情况。很多用户喜欢使用“123456”、“88888”、“密码”等简单的密码。所以黑客可以提前计算出这些常用密码的MD5值,得到一个倒推表。这样,不用破解,只需比对数据库中的MD5,黑客就可以获得使用常用密码的用户账号信息。
对于用户来说,当然不要用太简单的密码。但是,能否在编程中加强对简单密码的保护?
由于普通密码的MD5值可以很容易地推导出来,所以最好确保存储的用户密码不是那些已经计算过的普通密码的MD5值。这种方法是通过在原密码上加一个复杂的字符串来实现的,俗称“加盐”。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。