今天使用python进行了字符串md5加密实践,过程中踩了些坑,在此分享方法:

在python3的标准库中,已经移除了md5库,因此想要进行md5加密,必须引入hash加密算法。hash加密算法都放在hashlib这个标准库中,如SHA1、SHA224、SHA256、SHA384、SHA512和MD5算法等。

1、python3引入hashlib库时比较简单,通过import hashlib命令,即可导入库。

2、通过以下方法,可以实现md5加密并打印出加密后的字符串

  1. import hashlib
  2. m = hashlib.md5()
  3. m.update(b’123′)
  4. md5_test = m.hexdigest()
  5. print(md5_test)

复制代码

3、如何解决这个问题呢,那么就在加密过程中设置加密编码格式吧!

小编开始尝试了这样简单的编码:

import hashlib
data = ‘中文’
m = hashlib.md5(data).hexdigest()
print(m)

但是出现了TypeError: Unicode-objects must be encoded before hashing的报错,意思是在hashing加密前,需要对加密对象进行编码。

正确的操作如下:先将待加密的数据转换为utf-8格式

m = hashlib.md5(data.encode(encoding=’utf-8′)).hexdigest()

不仅可以设置为utf-8编码,经测试可以转为UTF-8、GBK、GB2312、GB18030,不分大小写, 小编实测加密结果:

UTF-8的加密结果不同于GBK,GB2312, 但是GBK,GB2312加密的结果是一致的。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部