python中cryptodome的AES
cryptodome中的AES使用
AES特性
AES為對稱加密, 使用金鑰來加密解密.
AES為分組密碼,分組密碼也就是把明文分成一組一組的,每組長度相等,每次加密一組資料,直到加密完整個明文。在AES標準規範中,分組長度只能是128位,也就是說,每個分組為16個位元組(每個位元組8位)。金鑰的長度可以使用128位、192位或256位。金鑰的長度不同,推薦加密輪數也不同。
python程式碼
from Cryptodome.Cipher import AES
from Cryptodome import Random
data = '需要加密的資料'
# 金鑰key需要為16, 24, 32長度的位元組型別資料.
# 我們使用AES-128位(16位元組)來使用.
key = b'1234567890123456' # 16bytes
# 還需要使用一個向量.
iv = Random.new().read(AES.block_size) # 生成一個長度等於AES塊大小並且不重複的金鑰向量物件.
# 使用key和iv初始化AES物件, 使用MODE_CFB模式.
aesobj = AES.new(key, AES.MODE_CFB, iv)
# 加密的資料的長度需為16的倍數, 不足16則會自動補足.
# 將金鑰向量加到加密後的密文開頭, 一起傳輸(方便後面解密).
aescrypto = iv + aesobj.encrypt(data.encode())
print(aescrypto)
# 解密需要使用Key和iv生成新的AES物件.
aesobj2 = AES.new(key, AES.MODE_CFB, aescrypto[0:16])
# 使用新的AES物件來解密.
aescrypto2 = aesobj2.decrypt(aescrypto[16:])
print(aescrypto2.decode()) # 這裡記得decode()哦
流程
1.準備好合適的key, data.
2.建立iv金鑰向量物件.
3.使用key, iv建立用於加密的AES物件.
4.使用加密的AES物件encrypt進行加密.
5.使用原有的key, iv建立用於解密的AES物件.
6.使用解密的AES物件decrypt進行解密.
可以使用binascii模組來對加密後的資料進行格式化輸出.
(ps: 遇錯得改..)
相關文章
- python中cryptodome的DESPython
- AES演算法在Python中的使用演算法Python
- Python AES 加密和解密(qbit)Python加密解密
- python AES-CBC 加密解密Python加密解密
- ModuleNotFoundError: No module named ‘Crypto‘ ‘Cryptodome‘Error
- php中aes加密和rsa加密的區別PHP加密
- Python/Java AES 加解密方法互相轉換PythonJava解密
- Python使用AES進行鹽值加密和解密Python加密解密
- AES加密加密
- Golang AES加密Golang加密
- AES加密解密加密解密
- AES 加密&解密加密解密
- AES 演算法演算法
- Vue使用AES加密Vue加密
- AES128-CMACMac
- AES CBC 加密解密加密解密
- 告別DES 迎接AES
- AES-CBC 模式加密模式加密
- nodejs常用加密方式 RSA & AESNodeJS加密
- golang AES-CBC 加密解密Golang加密解密
- 逆向工程加密函式:AES加密函式
- Homomorphic Evaluation of the AES Circuit:解讀UI
- AES 加密演算法的詳細介紹加密演算法
- MySQL 中 AES_DECRYPT 加密,如何在瀚高資料庫中使用MySql加密資料庫
- 安全篇-AES/RSA加密機制加密
- AES和DES程式碼實現
- 十分鐘看懂AES加密加密
- AES加解密使用總結解密
- php與java互通aes_encryptPHPJava
- Java AES加密和解密教程 - BaeldungJava加密解密
- AES演算法:加密通訊的新選擇演算法加密
- JavaScript前端和Java後端的AES加密和解密JavaScript前端後端加密解密
- Ubuntu18.04啟動SSH報錯 sshd_config line 1: Bad SSH2 cipher spec ‘aes128-cbc,aes192-cbc,aes256-cbcUbuntu
- python(python中的super函式、)Python函式
- python 中的序列Python
- Python中的tuplePython
- Python中的dictPython
- python 中的[::-1]Python