Python中實(shí)現(xiàn)對(duì)稱加密的常用算法包括DES、Triple DES和AES。以下是這些算法的簡(jiǎn)要介紹:
在Python中,可以使用pycryptodome
庫(kù)來(lái)實(shí)現(xiàn)這些對(duì)稱加密算法。例如,要使用AES算法進(jìn)行加密和解密,可以執(zhí)行以下操作:
from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
from Crypto.Util.Padding import pad, unpad
# 生成隨機(jī)密鑰
key = get_random_bytes(16) # 對(duì)于AES-128,密鑰長(zhǎng)度為16字節(jié)
# 創(chuàng)建一個(gè)AES cipher對(duì)象
cipher = AES.new(key, AES.MODE_CBC)
# 要加密的數(shù)據(jù)
data = b'This is a secret message'
# 對(duì)數(shù)據(jù)進(jìn)行填充以滿足AES塊大小要求
padded_data = pad(data, AES.block_size)
# 加密數(shù)據(jù)
ciphertext = cipher.encrypt(padded_data)
# 要解密的數(shù)據(jù)(與加密時(shí)的數(shù)據(jù)相同)
decrypted_data = cipher.decrypt(ciphertext)
# 對(duì)解密后的數(shù)據(jù)進(jìn)行去填充
original_data = unpad(decrypted_data, AES.block_size)
print(original_data.decode('utf-8')) # 輸出原始數(shù)據(jù)
請(qǐng)注意,在實(shí)際應(yīng)用中,密鑰的管理非常重要。確保密鑰的安全存儲(chǔ)和傳輸對(duì)于保護(hù)加密數(shù)據(jù)至關(guān)重要。