#aes-demo
import base64
from crypto.cipher import aes
'''採用aes對稱加密演算法
'''# str不是16的倍數那就補足為16的倍數
def add_to_16(value):
while len(value) % 16 != 0:
value += '\0'
return str.encode(value) # 返回bytes
#加密方法
def encrypt_oracle():
# 秘鑰
key = '123456'
# 待加密文字
text = 'abc123def456'
# 初始化加密器
aes = aes.new(add_to_16(key), aes.mode_ecb)
#先進行aes加密
encrypt_aes = aes.encrypt(add_to_16(text))
#用base64轉成字串形式
encrypted_text = str(base64.encodebytes(encrypt_aes), encoding='utf-8') # 執行加密並轉碼返回bytes
print(encrypted_text)
#解密方法
def decrypt_oralce():
# 秘鑰
key = '123456'
# 密文
text = 'qr/tqk4inswexdmsbcddda=='
# 初始化加密器
aes = aes.new(add_to_16(key), aes.mode_ecb)
#優先逆向解密base64成bytes
base64_decrypted = base64.decodebytes(text.encode(encoding='utf-8'))
#執行解密密並轉碼返回str
decrypted_text = str(aes.decrypt(base64_decrypted),encoding='utf-8').replace('\0','')
print(decrypted_text)
if __name__ == '__main__':
# encrypt_oracle()
decrypt_oralce()
AES對稱加密演算法實踐 python3
下面是在python3中使用mode cbc 需要salt 的最佳實踐 python2環境的見 如果aes加密是mode ecb模式,則不需要隨機向量,中注釋部分 加解密過程 通過 python encode.py 加密本地data目錄下的file.jpg檔案 二進位制 經過加密後生成 data f...
07 對稱加密演算法指令
7.1.enc指令 例子 enc des cbc in pln.txt out enc.txt pass pass 12345678 7.2.對稱加密演算法指令種類 演算法描述 enc指令引數 aes演算法128 cbc ase 128 cbc aes演算法128 cfb aes 128 cfb a...
密碼學1 對稱加密體系
簡介 加密解密的過程中使用同乙個金鑰,也稱作單金鑰加密。例如 i love you 每個字母按字母表的順序想後移動一位變成j mpwf zpv,而j mpwf zpv按字母表的順序向前移動一位變成i love you,此時加密和解密的過程中1就充當了金鑰的角色。i love you稱之為明文,j m...