当前位置: 首页 > 图灵资讯 > 行业资讯> python中如何实现加密

python中如何实现加密

发布时间:2026-05-24 21:53:02

1、Base64加密用于Python:

Python内置的base64模块可以直接编解base64

注意:用于base64编码的字符要么是ASCII包含的字符,要么是二进制数据

#-*-coding:UTF-8-*-
__author__='rxz'
importbase64

a=base64.b64encode(b"helloworld")
print(a)#b'agvsbg8gd29ybgQ'

b=base64.b64decode(a)
print(b)#b"helloworld"

2、MD5加密在Python中使用

由于MD5模块在python3中被移除,因此在python3中使用hashlib模块进行md5操作

#-*-coding:UTF-8-*-
__author__='rxz'
importhashlib

#待加密信息
str='你好,中国'

#创建md5对象,
#md5对象,md5不能反解,但加密是固定的,关系是一一对应的,所以有缺陷,可以碰撞
hl=hashlib.md5()

#要加密哪个字符串,就放这里
#encode必须在这里声明
#假如写法是hl.update(str)报错为:Unicode-objectsmustbeencodedbeforehashing
hl.update(str.encode(encoding='utf-8'))

print('MD5加密前为'+str)
#hl.hexdigest()#获得加密字符串
print('加密后的MD5为'+hl.hexdigest())

"""
MD5加密前:你好,中国
MD5加密后,560a6b11a85d436acfa4bd7f4462f4
"""

hash3=hashlib.md5(bytes('abd',encoding='utf-8'))
'''
如果没有参数,md5遵守规则,生成相同的对应关系,如果添加参数,
在原加密的基础上再加密一层,这样参数只有自己知道,防止被撞库,
因为别人永远拿不到这个参数
'''
hash3.update(bytes("admin",encoding="utf-8"))
print(hash3.hexdigest()#9aea3c0a6c5155ca4d0a5e9b89deded

3、使用hmac加密

python中还有一个hmac模块,它处理我们创建key和内容,然后加密

该模块的加密方法与上述方法相似,首先将数据存储在字典中。

importhmac


hm=hmac.new(b'abc')
hm=hmac.new('你好,中国'.encode(encoding='utf-8'),b'bads')
print(hm.digest())
print(hm.hexdigest())

"""
b'\xc8;\x0c\x0bxd42\xc37X\xbc\xfbf=RP'
c83b0c0bd432c37d05bcfb63d525
"""

注:加密数据时,必须指定数据编码格式。

4、使用sha1 加密

Secureeesha1的全称是Secure Hash Algorithm(安全哈希算法) 。基于MD5的SHA1,加密后的数据长度更长,

输入长度小于264,产生长度为160bit的散列值。比MD5多32位。

所以SHA1比MD5更安全,但是SHA1的运行速度比MD5慢。

#-*-coding:UTF-8-*-
__author__='rxz'
importhashlib

str="中国你好"
a=hashlib.sha1(str.encode("utf-8")).hexdigest()
print("sha1加密前为:",str)
print("加密前后sha1:",a)

"""
sha1加密前:你好,中国
加密前后sha1:3e6c570876775d0031dbf66247ed1054d4ef695e
"""

Python教程推荐学习。

相关文章

Python能显示中文时间吗

Python能显示中文时间吗

2026-06-04
Python可以做桌面应用程序吗

Python可以做桌面应用程序吗

2026-06-04
Python交互式怎么写if语句

Python交互式怎么写if语句

2026-06-04
Python如何监控键盘按了什么键

Python如何监控键盘按了什么键

2026-06-04
Python如何根据日期判断周几

Python如何根据日期判断周几

2026-06-04
Python如何查看对象有哪些内容和属性

Python如何查看对象有哪些内容和属性

2026-06-04