python内置模块-hashlib.ma5

hashlib.md5 加密

题外话:md5加密是一个不可逆的过程,所以是不可反解的,网络上的一些解密很正确,只是由于撞库!!!
简单实现:
        import hashlib
        # 实例化一个对象
        fiona = hashlib.md5(b"dassda")  # 这里后面跟的字符串必须指定编码:ex1:b"hyg","hyg".encode("utf-8")
                                        # 这个字符串应该叫密钥吧,根据它来控制一个系统中所有加密的规则都是一致的
        # 加密
        fiona.update("hyg520wq".encode("utf-8")) # 这里后面跟的字符串必须指定编码:ex1:b"hyg","hyg".encode("utf-8")
        # 获取密文
        print(fiona.hexdigest())  # bb4108244e3c617e495a43776eefaecd
  • tips1:必须指定字符编码,str.encode(“编码格式”)或者 b"str"==>字节码
  • tips2:解码:密文比对
解码简单实现:
本来以为很简单,刚刚写博客代码的时候,忽然发现一个好玩的东西:如下:

请看:

import hashlib

fiona = hashlib.md5()  # 实例化对象

fiona.update("wq520".encode("utf-8"))
print(fiona.hexdigest())  # 0e45ec46e8e81bc9e14971d2f1ffeaae

fiona.update("wq520".encode("utf-8"))
print(fiona.hexdigest())  # 77227ccdc20ea8065347b159a585c549

fiona.update("wq520".encode("utf-8"))
print(fiona.hexdigest())  # 45f20419bbd24425450f860e34c192cc
一开始发现这个问题的时候,感觉有点神奇,明明是对同一个字符串进行加密,为什么得到的结果不一样!!

https://www.jianshu.com/p/7da9ede56dbd

上面的网址给了较为详细的解释,总之我们可以得到:
  • 我们每次加密,都应该新建一个对象!!!,如果用同一个对象进行多次加密,结果,一定不会让你满意的~~~

对于上面提到的问题:

import hashlib
# 创建个对象
fiona = hashlib.md5(b"wuqianwoaini")

# 1.使用单次加密
fiona.update(b"huangyonggangaiwuqian")  # e8f388154e8883565f47e2494701db6a

# 2. 使用多次加密
fiona.update(b"huangyonggang")
fiona.update(b"aiwuqian")   # e8f388154e8883565f47e2494701db6a
ret = fiona.hexdigest()
print(ret) 
如上面代码演示的一样,对一个完整的字符串分开加密和整体一次加密,最后得到的密文结果是一样的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值