📅  最后修改于: 2023-12-03 14:54:07.395000             🧑  作者: Mango
常规加密是一种保护数据安全性的常用方法。它通过将原始数据转换为经过特定算法处理后的密文,以防止未经授权的人员读取或修改数据。在本文中,我们将介绍几种常见的常规加密算法和实现方式。
对称加密算法使用相同的密钥进行加密和解密操作。以AES(Advanced Encryption Standard)为例,以下是使用Python实现的对称加密代码片段:
import hashlib
from Crypto.Cipher import AES
def encrypt(key, plain_text):
# 填充密钥为16字节
key = hashlib.sha256(key.encode()).digest()
# 填充明文为16字节的倍数
plain_text = plain_text + ' ' * (16 - len(plain_text) % 16)
# 创建AES加密器
cipher = AES.new(key, AES.MODE_ECB)
# 加密
encrypted_text = cipher.encrypt(plain_text.encode())
return encrypted_text
def decrypt(key, encrypted_text):
# 填充密钥为16字节
key = hashlib.sha256(key.encode()).digest()
# 创建AES解密器
cipher = AES.new(key, AES.MODE_ECB)
# 解密
decrypted_text = cipher.decrypt(encrypted_text).decode().rstrip()
return decrypted_text
以上代码使用AES算法实现了对字符串的加密和解密,使用了ECB(Electronic Codebook)模式。
非对称加密算法使用公钥加密数据,而私钥用于解密数据。以RSA(Rivest-Shamir-Adleman)为例,以下是使用Python实现的非对称加密代码片段:
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
def generate_key_pair():
# 生成RSA密钥对
key_pair = RSA.generate(2048)
private_key = key_pair.export_key()
public_key = key_pair.publickey().export_key()
return private_key, public_key
def encrypt(public_key, plain_text):
# 使用公钥加密数据
rsa_key = RSA.import_key(public_key)
cipher = PKCS1_OAEP.new(rsa_key)
encrypted_text = cipher.encrypt(plain_text.encode())
return encrypted_text
def decrypt(private_key, encrypted_text):
# 使用私钥解密数据
rsa_key = RSA.import_key(private_key)
cipher = PKCS1_OAEP.new(rsa_key)
decrypted_text = cipher.decrypt(encrypted_text).decode().rstrip()
return decrypted_text
以上代码使用RSA算法实现了对字符串的加密和解密,使用了PKCS1_OAEP(Optimal Asymmetric Encryption Padding)填充方式。
哈希算法将任意长度的数据转换为固定长度的哈希值。常见的哈希算法包括MD5和SHA系列。以SHA256为例,以下是使用Python实现的哈希算法代码片段:
import hashlib
def compute_hash(data):
# 计算SHA256哈希值
sha256_hash = hashlib.sha256(data.encode()).hexdigest()
return sha256_hash
以上代码使用SHA256算法计算了字符串的哈希值。
常规加密是一种保护数据安全性的常用方法。本文介绍了对称加密算法、非对称加密算法和哈希算法的实现方式。根据实际需求,程序员可以选择合适的加密算法来保护敏感数据的安全性。
以上代码片段基于Python实现,程序员可以根据实际需求选择不同的编程语言和加密库来实现相应的功能。