print('安裝密碼學套件pycryptodome,使用AES256-CBC加密')
!pip install pycryptodome
from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
from Crypto.Util.Padding import pad, unpad
def printHex(xx):
for x in xx:
print("%02x" %(x), end=" ")
print()
"""產生密鑰secret key與iv"""
key = get_random_bytes(256//8)
printHex(key)
iv =get_random_bytes(AES.block_size)
printHex(iv)
aes = AES.new(key, AES.MODE_CBC, iv)
"""加密"""
plain=input('請輸入你要加密的文字:\n')
m=plain.encode('utf-8')
%time cc=aes.encrypt(pad(m, AES.block_size))
printHex(cc)
"""要解密了"""
aes=AES.new(key, AES.MODE_CBC, iv)#解密時要重新取得aes
%time p1=aes.decrypt(cc)
printHex(p1)
p2=unpad(p1, aes.block_size)
printHex(p2)
print(m==p2)
print(p2.decode('utf-8'))
herrDeng網內搜尋
自訂搜尋
Ads
2025年5月11日 星期日
AES 256文字加密python實作
訂閱:
張貼留言 (Atom)
熱門文章
-
url="https://www.twse.com.tw/exchangeReport/STOCK_DAY?response=json&date=20220330&stockNo=2330"
-
教育部為提昇全民資安素養與電腦防護能力,本部於101年9月5日至11月5日舉辦「全民資安素養自我評量」活動,請在活動期間內踴躍上網檢測資訊安全素養認知程度,並有機會參與抽獎,詳情請參閱活動網站(網址: https://isafe.moe.edu.tw/event
-
C C++ Py3 DP與OOP解Leetcode 3573 Best Time to Buy and Sell Stock V [Py3 code請進]
-
Py3 CPP多項次公式解梯形問題Leetcode 3623 Count Number of Trapezoids I 數有幾個不同水平梯形,先用hash map數有相同y座標的點,再用多項次公式解題 [Py3解請進]
-
RSA 演算 Euler 定理搞定#LeetCode 372 Super Pow--C,C++,Python實作。玩過數論、RSA演算的,解這個問題剛好,C++解答打敗94%,還沒有特別優化。
-
Py3 C++利用Euclid公式達O(n)解Leetcode 1925 Count Square Sum Triples 用數論方法解畢氏定理三角整數解個數,這應該算是Diophantine Equation中最簡單的例題 [Py3解請進]
沒有留言:
張貼留言