Python中加密函數(shù)的類型主要包括對稱加密算法、非對稱加密算法以及哈希算法。以下是對這些算法的簡要介紹:
pycryptodome
庫來實現(xiàn)這些算法。例如,使用AES加密和解密數(shù)據(jù)可以使用以下代碼:cryptography
庫來實現(xiàn)RSA等算法。例如,使用RSA加密和解密數(shù)據(jù)可以使用以下代碼:from cryptography.hazmat.primitives import serialization, hashes
from cryptography.hazmat.primitives.asymmetric import padding
from cryptography.hazmat.backends import default_backend
# 生成RSA密鑰對
private_key = rsa.generate_private_key(
public_exponent=65537,
key_size=2048,
backend=default_backend()
)
public_key = private_key.public_key()
# 加載公鑰和私鑰
public_pem = public_key.public_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PublicFormat.SubjectPublicKeyInfo
)
private_pem = private_key.private_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PrivateFormat.PKCS8,
encryption_algorithm=serialization.NoEncryption()
)
# 加密數(shù)據(jù)
data = b"Hello, world!"
encrypted = public_key.encrypt(
data,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
# 解密數(shù)據(jù)
decrypted = private_key.decrypt(
encrypted,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
hashlib
庫來實現(xiàn)這些算法。例如,計算數(shù)據(jù)的SHA-256哈希值可以使用以下代碼:import hashlib
data = b"Hello, world!"
hash_object = hashlib.sha256(data)
hex_dig = hash_object.hexdigest()
print(hex_dig)
請注意,以上示例僅用于演示目的,實際應(yīng)用中可能需要根據(jù)具體需求選擇合適的加密算法和庫,并注意保護(hù)密鑰和敏感信息的安全。