亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
微博| 翁源县| 安平县| 英超| 乾安县| 开封市| 邹城市| 凤山县| 中宁县| 桂林市| 增城市| 灌南县| 巴林左旗| 德阳市| 都江堰市| 酒泉市| 周至县| 吴川市| 宿松县| 寻甸| 马龙县| 平南县| 山东| 资兴市| 呼和浩特市| 尚义县| 鹰潭市| 石嘴山市| 闽侯县| 昌宁县| 东城区| 广德县| 安陆市| 锦屏县| 延边| 新平| 新宾| 邮箱| 华坪县| 阿克苏市| 泽普县|