使用Python实现常用的加密和解密函数
发布时间:2023-06-30 07:56:01
Python提供了许多加密和解密函数的库,可以实现各种常见的加密和解密方法。下面是一些常用的加密和解密函数的示例。
1. MD5加密
MD5是一种常见的消息摘要算法,可以将输入的字符串转换成固定长度的哈希值。Python的hashlib库提供了MD5的实现。
import hashlib
def md5_encrypt(text):
encrypter = hashlib.md5()
encrypter.update(text.encode('utf-8'))
return encrypter.hexdigest()
2. SHA加密
SHA是一种更安全的哈希算法,用于生成摘要的长度可以是160位、224位或256位。Python的hashlib库提供了SHA1、SHA224、SHA256等算法的实现。
import hashlib
def sha_encrypt(text):
encrypter = hashlib.sha256() # 也可以使用sha1()或sha224()
encrypter.update(text.encode('utf-8'))
return encrypter.hexdigest()
3. BASE64编码和解码
BASE64是一种常见的用于编码二进制数据的方法,常用于在网络或邮件中传输数据。Python的base64库提供了BASE64编码和解码的功能。
import base64
def base64_encode(text):
encoded_text = base64.b64encode(text.encode('utf-8'))
return encoded_text.decode('utf-8') # 返回字符串类型的编码结果
def base64_decode(encoded_text):
decoded_text = base64.b64decode(encoded_text.encode('utf-8'))
return decoded_text.decode('utf-8') # 返回字符串类型的解码结果
4. ROT13加密和解密
ROT13是一种简单的字母替换加密方法,将字母表的前13个字母与后13个字母对应起来。Python的codecs库提供了ROT13的实现。
import codecs
def rot13_encrypt(text):
encrypted_text = codecs.encode(text, 'rot_13')
return encrypted_text
def rot13_decrypt(encrypted_text):
decrypted_text = codecs.decode(encrypted_text, 'rot_13')
return decrypted_text
5. AES对称加密和解密
AES是一种对称加密算法,可以使用相同的密钥进行加密和解密。Python的Cryptodome库提供了AES的实现。
from Cryptodome.Cipher import AES
from Cryptodome.Random import get_random_bytes
def aes_encrypt(text, key):
cipher = AES.new(key.encode(), AES.MODE_EAX)
nonce = cipher.nonce
ciphertext, tag = cipher.encrypt_and_digest(text.encode())
return nonce + ciphertext + tag
def aes_decrypt(ciphertext, key):
nonce = ciphertext[:16]
ciphertext = ciphertext[16:-16]
tag = ciphertext[-16:]
cipher = AES.new(key.encode(), AES.MODE_EAX, nonce=nonce)
decrypted_text = cipher.decrypt_and_verify(ciphertext, tag)
return decrypted_text.decode()
这些只是一些常见的加密和解密函数的示例,Python还提供了许多其他的加密和解密方法的库,如RSA非对称加密、DES对称加密等,可以根据具体需求选择相应的库和方法进行加密和解密。
