python 實現AES加密和解密

2021-09-25 12:26:38 字數 3372 閱讀 4571

參考 

aes加密演算法是一種對稱加密演算法, 他有乙個密匙, 即用來加密, 也用來解密

importbase64

fromcrypto.cipherimportaes

# 金鑰(key), 密斯偏移量(iv) cbc模式加密

defaes_encrypt(key, data):

vi='0102030405060708'

pad=lambdas: 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進行解碼

returnenctext

defaes_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=lambdas: s[0:-s[-1]]

text_decrypted=unpad(text_decrypted)

# 去補位

text_decrypted=text_decrypted.decode('utf8')

returntext_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加密演算法是一種對稱加密演算法,他有乙個密匙,即用來加密,也用來解密 import base64 from crypto.cipher import aes 金鑰 key 密斯偏移量 iv cbc模式加密 def aes encrypt key,data vi 0102030405060...

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...