參考
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加密演算法是一種對稱加密演算法,他有乙個密匙,即用來加密,也用來解密 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...