中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

python對稱加密如何使用

小樊
81
2024-10-26 19:01:18
欄目: 編程語言

Python中實現對稱加密,最常用的是AES(Advanced Encryption Standard)算法。AES是一種對稱密鑰加密算法,它使用相同的密鑰進行加密和解密。

以下是使用Python的pycryptodome庫進行AES對稱加密的步驟:

  1. 首先,你需要安裝pycryptodome庫。你可以使用pip進行安裝:
pip install pycryptodome
  1. 然后,你可以使用以下代碼進行AES對稱加密:
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
from Crypto.Random import get_random_bytes
import base64

# 生成隨機密鑰
key = get_random_bytes(16)  # AES-128需要16字節密鑰

# 加密數據
data = b'Hello, World!'  # 要加密的數據
cipher = AES.new(key, AES.MODE_CBC)  # 創建一個AES cipher對象
ct_bytes = cipher.encrypt(pad(data, AES.block_size))  # 加密數據并填充到塊大小的整數倍
iv = base64.b64encode(cipher.iv).decode('utf-8')  # 獲取并編碼初始化向量
ct = base64.b64encode(ct_bytes).decode('utf-8')  # 獲取并編碼加密后的數據

print(f'IV: {iv}')
print(f'CT: {ct}')

# 解密數據
ct_bytes = base64.b64decode(ct)  # 解碼加密后的數據
iv = base64.b64decode(iv)  # 解碼初始化向量
cipher = AES.new(key, AES.MODE_CBC, iv)  # 創建一個AES cipher對象,使用相同的密鑰和IV
pt = unpad(cipher.decrypt(ct_bytes), AES.block_size)  # 解密數據并去除填充

print(f'PT: {pt.decode("utf-8")}')

注意:

  • 在實際應用中,你應該更加小心地處理密鑰,而不是像示例中那樣直接將其打印出來。
  • 在加密和解密時,確保使用相同的密鑰和IV。
  • pad函數用于將數據填充到塊大小的整數倍,以確保加密數據的完整性。同樣,unpad函數用于去除填充。
  • Crypto.Random.get_random_bytes函數用于生成隨機密鑰和IV,這在實際應用中非常重要,因為它們不能是可預測的。

0
米易县| 陕西省| 恩平市| 海门市| 五家渠市| 海淀区| 梁山县| 沐川县| 南溪县| 玉溪市| 紫金县| 古丈县| 双辽市| 莫力| 微山县| 寻甸| 临邑县| 敦煌市| 钟山县| 井陉县| 蕉岭县| 和田县| 高邮市| 芦山县| 元江| 建阳市| 浦县| 剑河县| 巴彦淖尔市| 平潭县| 洪湖市| 海口市| 蕲春县| 万安县| 永定县| 赣州市| 阜阳市| 东丰县| 都安| 昌宁县| 县级市|