91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
安远县| 杭州市| 余庆县| 宜兰县| 青海省| 石屏县| 茌平县| 嘉荫县| 会昌县| 宝鸡市| 顺平县| 福鼎市| 定西市| 龙江县| 吉安市| 成武县| 定陶县| 潍坊市| 栖霞市| 中牟县| 保靖县| 蓝山县| 天峨县| 晋宁县| 城市| 三穗县| 三河市| 台安县| 南昌市| 丰台区| 景泰县| 额敏县| 新龙县| 阜南县| 洛南县| 揭阳市| 锡林郭勒盟| 博湖县| 绩溪县| 噶尔县| 长宁区|