python 實現AES加密和解密

2022-08-21 12:03:11 字數 1437 閱讀 4513

參考 

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

import base64

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