參考
aes加密演算法是一種對稱加密演算法, 他有乙個密匙, 即用來加密, 也用來解密
import base64from crypto.cipher import aes
# 金鑰(key), 密斯偏移量(iv) cbc模式加密
def aes_encrypt(key, data):
vi = '0102030405060708'
pad = lambda s: s + (16 - len(s)%16) * chr(16 - len(s)%16)
data = pad(data)
# 字串補位
cipher = aes.new(key.encode('utf8'), aes.mode_cbc, vi.encode('utf8'))
encryptedbytes = cipher.encrypt(data.encode('utf8'))
# 加密後得到的是bytes型別的資料
encodestrs = base64.b64encode(encryptedbytes)
# 使用base64進行編碼,返回byte字串
enctext = encodestrs.decode('utf8')
# 對byte字串按utf-8進行解碼
return enctext
def aes_decrypt(key, data):
vi = '0102030405060708'
data = data.encode('utf8')
encodebytes = base64.decodebytes(data)
# 將加密資料轉換位bytes型別資料
cipher = aes.new(key.encode('utf8'), aes.mode_cbc, vi.encode('utf8'))
text_decrypted = cipher.decrypt(encodebytes)
unpad = lambda s: s[0:-s[-1]]
text_decrypted = unpad(text_decrypted)
# 去補位
text_decrypted = text_decrypted.decode('utf8')
return text_decrypted
key = '0cojum6qyw8w8jud'
data = 'sdadsdsdsfd'
aes_encrypt(key, data)
enctext = aes_encrypt(key, data)
print(enctext)
text_decrypted = aes_decrypt(key, enctext)
print(text_decrypted)
hbxlrmkpkbpdfsf9xsrgqq==
sdadsdsdsfd
python 實現AES加密和解密
參考 aes加密演算法是一種對稱加密演算法,他有乙個密匙,即用來加密,也用來解密 importbase64 fromcrypto.cipherimportaes 金鑰 key 密斯偏移量 iv cbc模式加密 defaes encrypt key,data vi 0102030405060708 p...
python 實現AES加密和解密
參考 aes加密演算法是一種對稱加密演算法,他有乙個密匙,即用來加密,也用來解密 importbase64 fromcrypto.cipherimportaes 金鑰 key 密斯偏移量 iv cbc模式加密 defaes encrypt key,data vi 0102030405060708 p...
pycrypto實現AES加密和解密
一 coding utf 8 import string import random from crypto.cipher import aes def keygenerater length 生成指定長度的秘鑰 if length not in 16,24,32 return none x str...