Python加密相关的模块

鳄鱼君

发表文章数:642

Vieu四代商业主题

高扩展、安全、稳定、响应式布局多功能模板。

¥69 现在购买
首页 » Python » Python加密相关的模块

hashlib模块

这个模块主要是用于加密相关的操作,3.X代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA384,SHA256,SHA512,MD5算法,可以说是越往后面加密程度越安全。hash值的特点是(hash值/产品有三大特性):

  • 只要传入的内容一样,得到的hash值必然一样=====>要用明文传输密码文件完整性校验
  • 不能由hash值返解成内容=======》把密码做成hash值,不应该在网络传输明文密码(只能有内容返回hash值)
  • 只要使用的hash算法不变,无论校验的内容有多大,得到的hash值长度是固定的(如从网上下载文件要进行hash校验,保证网络传输没有丢包)

那么我们根据hash值的特性就可以想到它可以用来做什么,比方说我们使用爬虫爬取批量的图片时,会遇到图片名字相同的情况,那么你会用什么方法解决呢?😁

实例引入

import hashlib

a=hashlib.md5() #生成一个加密的对象
a.update(b"Hello World")  #update对指定字符串进行加密
print(a.digest()) #二进制格式hash
print(a.hexdigest()) #十六进制格式hash

print(hashlib.md5('萨瓦迪卡'.encode('utf-8')).hexdigest())

update()接收的内容必须为字节Bytes类型,如果你想要加密中文,必须要使用encode转换为字节类型:

import hashlib

a=hashlib.md5() #生成一个加密的对象
a.update("Hello 是World".encode('utf-8'))  #update对指定字符串进行加密
print(a.hexdigest()) #十六进制格式hash

一般加密成十六进制的就算比较安全的了,越复杂的效率就会有所下降。我们再来看看其它的加密方式:

a=hashlib.sha1()
a.update("Hello 是World".encode('utf-8'))
print(a.hexdigest())

b=hashlib.sha256()  #一般比较常用
b.update("Hello 是World".encode('utf-8'))
print(b.hexdigest())

c=hashlib.sha384()
c.update("Hello 是World".encode('utf-8'))
print(c.hexdigest())

d=hashlib.sha512()
d.update("Hello 是World".encode('utf-8'))
print(d.hexdigest())

越往后面越复杂对吧,就越长是吧.

hmac模块

如果你觉得还不够安全(加密后的字符太少),可以使用hmac模块,它内部对我们创建Key 和内容再进行加密处理然后再加密,就是两次加密了。

import hmac

e=hmac.new("撒嗒12345dsadsada".encode('utf-8'),"你是谁".encode('utf-8'))
print(e.hexdigest())

未经允许不得转载:作者:鳄鱼君, 转载或复制请以 超链接形式 并注明出处 鳄鱼君
原文地址:《Python加密相关的模块》 发布于2019-12-22

分享到:
赞(0) 赏杯咖啡

评论 抢沙发

8 + 6 =


文章对你有帮助可赏作者一杯咖啡

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.6主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册