-
python md5加密列表_python生成md5加密的方法
2020-12-19 20:13:43MD5消息摘要算法(英语:MD5 Message-Digest ...MD5是最常见的摘要算法,速度很快,生成结果是固定的128 bit字节,通常用一个32位的16进制字符串表示。hashlib介绍Python的hashlib提供了常见的摘要算法,如MD5,S...MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5是最常见的摘要算法,速度很快,生成结果是固定的128 bit字节,通常用一个32位的16进制字符串表示。
hashlib介绍
Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。
摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。
在python3的标准库中,已经移除了md5模块,而关于hash加密算法都放在hashlib这个标准库中,如SHA1、SHA224、SHA256、SHA384、SHA512和MD5算法等。
方法一: 使用hashlib库
import hashlib
md5str = hashlib.md5('jsphp.net'.encode(encoding='UTF-8')).hexdigest()
print(md5str)
输出:819bcf6efa10cc22f6201efa59c61f36
hashlib还有一种写法
import hashlib
str = 'jsphp.net'
m = hashlib.md5()
b = str.encode(encoding='utf-8')
m.update(b)
str_md5 = m.hexdigest()
print(str_md5)
m.update的这种写法,加密字符串必须要encode(encoding='utf-8')指定下字符集,否则会报:Unicode-objects must be encoded before hashing
对于英文加密,可以使用b' '前缀。
如果要对中文加密,使用b' '前缀来写会报错,原因在于字符转码问题,b' '在python中只能对ASCII字符进行转码。
要用encode(encoding='utf-8')将中文转码成UTF-8:
import hashlib
md5str = hashlib.md5('jsphp.net'.encode(encoding='UTF-8')).hexdigest()
print(md5str)
结果:819bcf6efa10cc22f6201efa59c61f36
此外中文不同的encode编码,md5加密得到的结果是不一样的
import hashlib
md5str = hashlib.md5('中文'.encode(encoding='UTF-8')).hexdigest()
print(md5str) #a7bac2239fcdcb3a067903d8077c4a07
md5str2 = hashlib.md5('中文'.encode(encoding='GBK')).hexdigest()
print(md5str2) #bcce109775e8e1972e9f5fcda3e12895
方法二:md5加密,适用与Python3之前
import md5
src = 'jsphp.net'
m1 = md5.new()
m1.update(src)
print m1.hexdigest()
-
Python3中的md5加密
2018-09-10 16:39:42Python3中的md5加密 md5介绍 在写网络爬虫模拟登陆时,遇到提交表单时是一串数字和字母,才知道经过了md5加密。 md5加密的密码 MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的...md5介绍
在写网络爬虫模拟登陆时,遇到提交表单时是一串数字和字母,才知道经过了md5加密。
md5加密的密码 MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5是最常见的摘要算法,速度很快,生成结果是固定的128 bit字节,通常用一个32位的16进制字符串表示。
摘要算法的应用
任何允许用户登录的网站都会存储用户登录的用户名和口令。用户名和口令存到数据库表中。
name | password --------+---------- michael | 123456 bob | abc999
如果以明文保存用户口令,如果数据库泄露,所有用户的口令就落入黑客的手里。此外,网站运维人员是可以访问数据库的,也就是能获取到所有用户的口令。
正确的保存口令的方式是不存储用户的明文口令,而是存储用户口令的摘要,比如MD5:
username | password ---------+--------------------------------- michael | e10adc3949ba59abbe56e057f20f883e bob | 878ef96e86145580c38c87f0410ad153
当用户登录时,首先计算用户输入的明文口令的MD5,然后和数据库存储的MD5对比,如果一致,说明口令输入正确,如果不一致,口令肯定错误。这样即使运维人员能访问数据库,也无法获知用户的明文口令。
hashlib介绍
Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。
摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。
在python3的标准库中,已经移除了md5模块,而关于hash加密算法都放在hashlib这个标准库中,如SHA1、SHA224、SHA256、SHA384、SHA512和MD5算法等。
使用hashlib库进行md5加密
# 由于MD5模块在python3中被移除 # 在python3中使用hashlib模块进行md5操作 import hashlib # 待加密信息 str = 'this is a md5 test.' # 创建md5对象 m = hashlib.md5() # Tips # 此处必须encode # 若写法为m.update(str) 报错为: Unicode-objects must be encoded before hashing # 因为python3里默认的str是unicode # 或者 b = bytes(str, encoding='utf-8'),作用相同,都是encode为bytes b = str.encode(encoding='utf-8') m.update(b) str_md5 = m.hexdigest() print('MD5加密前为 :' + str) print('MD5加密后为 :' + str_md5) # 另一种写法:b‘’前缀代表的就是bytes str_md5 = hashlib.md5(b'this is a md5 test.').hexdigest() print('MD5加密后为 :' + str_md5)
运行结果
对英文加密,可以使用b' '
前缀。如果要对中文加密,使用
b' '
前缀来写会报错,原因在于字符转码问题,b' '
在python中只能对ASCII字符进行转码。
要用encode(encoding='utf-8')
将中文转码成UTF-8:>>> import hashlib >>> data = '你好' >>> hashlib.md5(data.encode(encoding='UTF-8')).hexdigest() '7eca689f0d3389d9dea66ae112e5cfd7'
其它中文编码md5加密
可以看到GBK、GB2312、GB18030编码的加密结果相同,而与UTF-8的加密结果不同。
>>> hashlib.md5('你好'.encode(encoding='UTF-8')).hexdigest() '7eca689f0d3389d9dea66ae112e5cfd7' >>> hashlib.md5('你好'.encode(encoding='GBK')).hexdigest() 'b94ae3c6d892b29cf48d9bea819b27b9' >>> hashlib.md5('你好'.encode(encoding='GB2312')).hexdigest() 'b94ae3c6d892b29cf48d9bea819b27b9' >>> hashlib.md5('你好'.encode(encoding='GB18030')).hexdigest() 'b94ae3c6d892b29cf48d9bea819b27b9'
关于每个方法的解析,可以参考:
关于python编码、encode、decode的内容,可以参考:
CSDN:python中的encode()和decode()函数
CSDN:python3大作战之encode与decode讲解
参考链接
-
python文件的md5加密方法
2020-12-23 19:18:56本文实例讲述了python文件的md5加密方法。分享给大家供大家参考,具体如下: 简单模式: from hashlib import md5 def md5_file(name): m = md5() a_file = open(name, 'rb') #需要使用二进制格式读取... -
VC6源码实现文件多层MD5加密工具
2021-03-15 15:55:36摘要:VC/C++源码,文件操作,MD5,加密 文件多层MD5加密工具...本MD5加密工具速度快,适用于除纯英文类文件外的其他文件,如果加密或解密非纯英文类文件,建议使用此方法,加密或解密纯英文类文件,建议选择全部操作。 -
32位md5解密_Python3中的md5加密实现
2020-11-27 05:01:2401MD5介绍在写网络爬虫模拟登陆时,遇到提交表单时是一串数字和字母,才知道经过了md5加密。MD5消息摘要算法:(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的...01
MD5介绍
在写网络爬虫模拟登陆时,遇到提交表单时是一串数字和字母,才知道经过了md5加密。
MD5消息摘要算法:(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5是最常见的摘要算法,速度很快,生成结果是固定的128 bit字节,通常用一个32位的16进制字符串表示。
摘要算法的应用:
任何允许用户登录的网站都会存储用户登录的用户名和口令。用户名和口令存到数据库表中。
name | password
--------+----------
chengf | 123456
code | abc999
如果以明文保存用户口令,如果数据库泄露,所有用户的口令就落入黑客的手里。此外,网站运维人员是可以访问数据库的,也就是能获取到所有用户的口令。
正确的保存口令的方式是不存储用户的明文口令,而是存储用户口令的摘要,比如MD5:
username | password
---------+---------------------------------
chengf | e10adc3949ba59abbe56e057f20f883e
code | 878ef96e86145580c38c87f0410ad153
当用户登录时,首先计算用户输入的明文口令的MD5,然后和数据库存储的MD5对比,如果一致,说明口令输入正确,如果不一致,口令肯定错误。这样即使运维人员能访问数据库,也无法获知用户的明文口令。
02
hashlib介绍
Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。
摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。
在python3的标准库中,已经移除了md5模块,而关于hash加密算法都放在hashlib这个标准库中,如SHA1、SHA224、SHA256、SHA384、SHA512和MD5算法等。
https://docs.python.org/3/library/hashlib.html?highlight=hashlib#credits
03 使用hashlib库进行md5加密
# @Time : 2020/6/1 21:50
# @Author : 编程技术圈
# @Site :
# @File : hash.py
# @Software: PyCharm
import hashlib
# 由于MD5模块在python3中被移除
# 在python3中使用hashlib模块进行md5操作
import hashlib
# 待加密信息
str = 'this is a md5 test.'
# 创建md5对象
m = hashlib.md5
# Tips
# 此处必须encode
# 若写法为m.update(str) 报错为:Unicode-objects must be encoded before hashing
# 因为python3里默认的str是unicode
# 或者 b = bytes(str, encoding='utf-8'),作用相同,都是encode为bytes
b = str.encode(encoding='utf-8')
m.update(b)
str_md5 = m.hexdigest
print('MD5加密前为 :' + str)
print('MD5加密后为 :' + str_md5)
# 另一种写法:b‘’前缀代表的就是bytes
str_md5 = hashlib.md5(b'this is a md5 test.').hexdigest
print('MD5加密后为 :' + str_md5)
运行结果
注:对英文加密,可以使用b' '前缀,如果要对中文加密,使用b' '前缀来写会报错,原因在于字符转码问题,b' '在python中只能对ASCII字符进行转码。
要用encode(encoding='utf-8')将中文转码成UTF-8:
>>> import hashlib
>>> data = '你好'
>>> hashlib.md5(data.encode(encoding='UTF-8')).hexdigest
'7eca689f0d3389d9dea66ae112e5cfd7'
其它中文编码md5加密
可以看到GBK、GB2312、GB18030编码的加密结果相同,而与UTF-8的加密结果不同。
>>> hashlib.md5('你好'.encode(encoding='UTF-8')).hexdigest
'7eca689f0d3389d9dea66ae112e5cfd7'
>>> hashlib.md5('你好'.encode(encoding='GBK')).hexdigest
'b94ae3c6d892b29cf48d9bea819b27b9'
>>> hashlib.md5('你好'.encode(encoding='GB2312')).hexdigest
'b94ae3c6d892b29cf48d9bea819b27b9'
>>> hashlib.md5('你好'.encode(encoding='GB18030')).hexdigest
'b94ae3c6d892b29cf48d9bea819b27b9'
- end -
-
JavaScript MD5 Library MD5 加密库
2011-06-21 09:39:00是一个纯 JavaScript 实现的 MD5 加密库。 它支持输入的数据类型包括字符串,字符数组,字节数组。它能够运行在现有版本的桌面浏览器上,包括IE 6等等。对于JavaScript而言,它在性能方面相对较好。 使用方法: ...是一个纯 JavaScript 实现的 MD5 加密库。
它支持输入的数据类型包括字符串,字符数组,字节数组。它能够运行在现有版本的桌面浏览器上,包括IE 6等等。对于JavaScript而言,它在性能方面相对较好。
使用方法:
该版本的新特性:- 提供了压缩版本(md5_compact_min.js),该版本速度稍慢,但是更小巧。
- 支持更多类型的数组(具体参见https://developer.mozilla.org/en/JavaScript_typed_arrays)
- 支持输入数据的类型为:ArrayBuffer, Float32Array, Float64Array, Int16Array, Int32Array, Int8Array, Uint16Array, Uint32Array 或者 Uint8Array .
- 将单元测试移至md5_test.js文件。
- 支持较小的重构。
下载地址:http://blog.faultylabs.com/2011.php?d=md5 -
python中md5加密的实现
2021-01-11 19:39:43python中md5加密的实现 MD5消息摘要算法:(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5是最常见的摘要... -
python3实现md5加密
2019-12-11 18:49:09MD5简介 MD5消息摘要算法(MD5 Message-Digest ...MD5是最常见的摘要算法,速度很快,生成结果是固定的128 bit字节,通常用一个32位的16进制字符串表示。 使用python3 的hashlib库,hash加密算法(比如:SHA1... -
python md5加密 - hashlib
2021-03-20 14:50:56MD5是最常见的摘要算法,速度很快,生成结果是固定的128 bit字节,通常用一个32位的16进制字符串表示。 hashlib介绍 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。 摘要算法又称哈希算法、散列算法。... -
js 制作MD5加密
2016-08-28 15:06:00http://pajhome.org.uk/crypt/md5/md5.html 然后可根据自己的需要去调用 欢迎大家阅览,多多评论其中的不足!! 为工程师之路添砖加瓦!! 转载于:https://www.cnblogs.com/sunnyroot/p/581... -
MD5加密、加盐和去盐
2019-11-29 19:30:02散列加密 MD5是不可逆、不能解密、速度快等特点。 对称加密法:根据相同的钥匙,进行加密和解密 大数据量的加密和解密。 不对称加密法:两把钥匙,A钥匙加密的东西,B钥匙可以解开。B钥匙加密的东西,A钥匙可以解开... -
go 字符串连接 和 MD5加密
2016-10-15 11:23:09go MD5加密方法,这里直接对一串字符串计算MD5。其中,通过md5.New()初始化一个MD5对象,其实它是一个hash.Hash对象。函数原型为 func New() hash.Hash 。 该对象实现了hash.Hash的Sum接口:计算出校验和。其函数... -
gulp 对js\css进行md5 加密
2019-10-08 14:41:54有的服务器为了网站加载速度,会做服务器缓存,这样就会出现代码出现引用地址没变,新代码不生效,而我们又希望新代码可以及时生效,这样我们就需要避免缓存,当然也有很多方法,本文只介绍使用gulp-rev(对文件名加... -
数据库加密技术总结(MD5加密,哈希加盐加密)
2020-08-10 23:46:21数据库加密系统是一款...加解密速度要求足够快,这样能够减少影响数据操作响应时间。 加密强度足够大,保证大部分数据长时间不被破译。但是在实际应用中加密算法不一定在理 -
【Python】hashlib模块实现MD5加密
2019-11-28 18:52:03MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被计算机安全领域广泛使用的密码散列函数,可以...MD5是最常见的摘要算法,速度很快,生成结果是固定的128 bit字节,通常用一个32位的16进制字符串表示。 -
MD5加密调用 数据库存加密数据
2009-12-13 11:51:23要求: ... 2. 照片大小小于1M的将其保存到数据库中,超过1M的保存到磁盘文件中。 ...3. 必须对用户密码进行加密。...4. 登录时必须查询数据库对用户名及其加密后的密码进行验证。...半成品 开发速度太垃圾了 ... -
DES/RSA/MD5加密解密的实现
2019-05-13 20:23:27特点:加密速度较快 不足:秘钥管理安全性有待思考(可以采用秘钥分离保存,和二次加密) //秘钥长度规定为8位 大家在使用加密方法的时候,根据自己的使用情况,选择加密和解密方法,请务必验证! 生活实例:有的... -
MD5、sha加密
2019-04-17 15:27:00MD5: 不可逆,一般用于密码的加密存储,数字签名,文件完整性验证 MD5码具有高度离散性,不可...相同环境下,运行速度比MD5慢 DES算法: 把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位 转... -
RSA、MD5、AES加密算法
2020-10-24 09:39:49加密算法,可以分可逆加密,不可逆加密(MD5),可逆加密又分为对称加密与非对称加密,比如大家经常听说的RSA算法就是一种非对称加密算法 不可逆加密(MD5):只能加密,不能解密,任何数据都能加密成16字节,不太... -
第62天学习打卡(MySQL 数据库级别的MD5加密 事务 索引)
2021-03-11 22:09:25数据库中为什么要设置主键及其作用: 数据库主键,指的是一个列或多列的组合,其值能唯一的...2)加快数据库的操作速度。 3) 在表中添加新记录时,DBMS会自动检查新记录的主键值,不允许该值与其他记录的主键值重复 -
Python中的md5和sha1加密方法
2020-08-03 23:37:17MD5 MD5的全称是Message-Digest Algorithm 5(信息-摘要算法)。128位长度。目前MD5是一种不可逆算法。 具有很高的安全性。...因此,比MD5更加安全,但SHA1的运算速度就比MD5要慢了。 python内置的 has -
RAS RC4 AES 加密 MD5
2016-11-10 12:24:00RAS RC4 AES 加密 MD5 这两者唯一的相同点是设计者中都包含了MIT的Ron Revist教授。RSA是公钥密码算法,优点:不用事先通过秘密信道传递密钥,可以用于数字签名。缺点:速度慢RC4是序列密码算法,优点:速度... -
单向加密的一点思考(md5)
2017-05-05 10:35:29在百度网盘中上传文件的时候、我发现那上传的速度真是一个快。...我们知道MD5加密的一个特征就是:雪崩效应(一旦被加密的内容发生一丁的点变化、将引起加密结果巨大的变化)我们不妨设想一下:在用户的本机电... -
md5等hash算法加密解密问题
2016-10-22 14:45:18MD5(Message Digest Algorithm,中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数...MD5比MD4来得复杂,并且速度较之要慢一点,但更安全,在抗分析和抗差分方面表现更好。 SHA1是安全哈希算法 -
论文研究-基于Blowfish和MD5的混合加密方案.pdf
2019-07-22 22:02:23针对Blowfish算法在实际应用中存在的等价密钥、重复初始化等问题,提出Blowfish与MD5算法相结合,将MD5算法的生成值作为密钥的一部分对Blowfish算法进行初始化,使用概率统计方法证明该方案弥补了Blowfish算法的实际... -
des、MD5、RSA加密算法优缺点
2014-04-23 01:20:20美国数据加密标准(DES)是对称密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。密钥较短,加密处理简单,加解密速度快,...SHA1 和 MD5 是散列算法,将任意大小的数据映射到一个较小的、固定长度的唯 -
AES、DES、RSA、MD5、Base64加密算法总结
2018-01-12 12:48:23AES、DES加密速度快,适合大量数据,des容易破解,一般用3重des,后来又出现了更快更安全的aes RSA是公钥加密,速度慢,只能处理少量数据,优点是公钥即使在不安全的网络上公开,也能保证安全 常见情况是双方用rsa协商出... -
python中hashlib加密变量,md5,sha1
2019-09-23 22:42:181.hashlib中md5,MD5是最常见的摘要算法,速度很快,生成结果是固定的128 bit字节,通常用一个32位的16进制字符串表示 import hashlib md5 = hashlib.md5() md5.update(b'hello world') # 需要传入字节类型数据 ...