帮忙整理一下pycryptodome各种加解密算法的封装
时间: 2023-11-10 14:44:37 浏览: 165
加密解密算法汇总
当然可以帮你整理一下pycryptodome库中常用的加解密算法的封装。以下是一些常见的加解密算法及其对应的封装示例:
1. 对称加密算法:
对称加密算法使用相同的密钥进行加密和解密。常见的对称加密算法包括AES和DES。
```python
from Cryptodome.Cipher import AES, DES
# AES加解密
def aes_encrypt(key, plaintext):
cipher = AES.new(key, AES.MODE_ECB)
ciphertext = cipher.encrypt(plaintext)
return ciphertext
def aes_decrypt(key, ciphertext):
cipher = AES.new(key, AES.MODE_ECB)
plaintext = cipher.decrypt(ciphertext)
return plaintext
# DES加解密
def des_encrypt(key, plaintext):
cipher = DES.new(key, DES.MODE_ECB)
ciphertext = cipher.encrypt(plaintext)
return ciphertext
def des_decrypt(key, ciphertext):
cipher = DES.new(key, DES.MODE_ECB)
plaintext = cipher.decrypt(ciphertext)
return plaintext
```
2. 非对称加密算法:
非对称加密算法使用一对密钥(公钥和私钥)进行加密和解密。常见的非对称加密算法包括RSA和ECC。
```python
from Cryptodome.PublicKey import RSA, ECC
# RSA加解密
def rsa_encrypt(public_key, plaintext):
cipher = RSA.import_key(public_key)
ciphertext = cipher.encrypt(plaintext, None)[0]
return ciphertext
def rsa_decrypt(private_key, ciphertext):
cipher = RSA.import_key(private_key)
plaintext = cipher.decrypt(ciphertext)
return plaintext
# ECC加解密
def ecc_encrypt(public_key, plaintext):
cipher = ECC.import_key(public_key)
ciphertext = cipher.encrypt(plaintext)
return ciphertext
def ecc_decrypt(private_key, ciphertext):
cipher = ECC.import_key(private_key)
plaintext = cipher.decrypt(ciphertext)
return plaintext
```
3. 散列函数:
散列函数将输入数据映射为固定长度的哈希值。常见的散列函数包括MD5和SHA系列。
```python
import hashlib
# MD5散列
def md5_hash(data):
md5 = hashlib.md5()
md5.update(data)
return md5.hexdigest()
# SHA-256散列
def sha256_hash(data):
sha256 = hashlib.sha256()
sha256.update(data)
return sha256.hexdigest()
```
这些是pycryptodome库中常见的加解密算法的封装示例,你可以根据自己的需求进行调用和扩展。希望对你有所帮助!
阅读全文