Python中加密解密相关函数介绍
发布时间:2023-06-16 22:06:36
在Python中,加密解密相关的函数有很多,涉及到的算法也不同。本文将介绍几种常见的加密解密算法及其使用方法。
1. hashlib模块
hashlib是Python中一个用于加密的标准库,提供了常见的加密算法,如MD5、SHA1、SHA256等。
使用方法:
import hashlib
# MD5加密
hash = hashlib.md5()
hash.update('hello'.encode('utf-8'))
print(hash.hexdigest())
# SHA1加密
hash = hashlib.sha1()
hash.update('hello'.encode('utf-8'))
print(hash.hexdigest())
# SHA256加密
hash = hashlib.sha256()
hash.update('hello'.encode('utf-8'))
print(hash.hexdigest())
2. base64模块
base64是一种将二进制数据编码成ASCII字符的方法,常用于网络传输数据、邮件附件等场景。
使用方法:
import base64
# 编码
s = 'hello'
b = s.encode('utf-8')
e = base64.b64encode(b)
print(e)
# 解码
d = base64.b64decode(e)
print(d.decode('utf-8'))
3. RSA算法
RSA是一种非对称加密算法,使用公钥加密、私钥解密。常见场景包括数字签名、身份验证等。
使用方法:
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5
import base64
# 生成密钥
key = RSA.generate(1024)
private_key = key.export_key()
public_key = key.publickey().export_key()
# 加密
cipher = PKCS1_v1_5.new(RSA.import_key(public_key))
encrypted_data = cipher.encrypt('hello'.encode('utf-8'))
print(base64.b64encode(encrypted_data))
# 解密
cipher = PKCS1_v1_5.new(RSA.import_key(private_key))
decrypted_data = cipher.decrypt(encrypted_data, None)
print(decrypted_data.decode('utf-8'))
4. AES算法
AES是一种对称加密算法,使用相同的密钥进行加解密。常用于保护机密信息和隐私数据。
使用方法:
from Crypto.Cipher import AES
import base64
# 加密
key = b'secretkey123456' # 密钥必须是16、24或32位长度
cipher = AES.new(key, AES.MODE_ECB)
encrypted_data = cipher.encrypt('hello'.encode('utf-8'))
print(base64.b64encode(encrypted_data))
# 解密
cipher = AES.new(key, AES.MODE_ECB)
decrypted_data = cipher.decrypt(encrypted_data)
print(decrypted_data.decode('utf-8'))
以上是Python中常见的加密解密相关函数介绍,使用这些函数可以保护数据的安全性,在网络传输、数据存储等场景中发挥重要作用。
