最近在寫介面自動化指令碼,需要的payload引數需要加密,而採用的加密標準為aes,因此特地去學了一下,發現專門有加密演算法庫支援這種加密演算法,就是pycrypto
pycrypto是乙個免費的加密演算法庫,支援常見的des、aes、以及md5、sha等各種hash運算
這篇博文只對aes加密進行重點講解
#coding:utf-8
from crypto.cipher import
aes#
加密cryptor = aes.new('
this is a key123
', aes.mode_cbc, '
this is an iv456')
msg='
the answer is no
'ciphertext =cryptor.encrypt(msg)
(ciphertext)#解密
cryptor2 = aes.new('
this is a key123
', aes.mode_cbc, '
this is an iv456')
plain_text=cryptor2.decrypt(ciphertext)
print(plain_text)
1)加密
'this is an iv456'為key,長度有著嚴格的要求,必須是16/24或者32位,否則將丟擲錯誤:valueerror: aes key must be either 16, 24, or 32 bytes long
'this is an iv456'為vi,長度要求更加嚴格,只能為16位,否則將丟擲錯誤:valueerror: iv must be 16 bytes long
通過encrypt()對msg字串進行加密得到ciphertext
2)解密
要想對加密字串進行解密,必須知道加密時使用的key和vi,通過decrypt()方法對加密字串進行解密
如果key和vi錯誤,則將無法得到正確的解密字串,解密失敗後將會得到乙個新的加密字串
3)關於安裝pycrypto模組遇到問題的請參考本人的另外一篇部落格:
加密問題詳解
一 對稱加密 symmetric cryptography 對稱加密是最快速 最簡單的一種加密方式,加密 encryption 與解密 decryption 用的是同樣的金鑰 secret key 這種方法在密碼學中叫做對稱加密演算法。對稱加密有很多種演算法,由於它效率很高,所以被廣泛使用在很多加密...
mcrypt加密詳解
安裝和使用php的mcrypt擴充套件 程式設計師們在編寫 程式時,除了要保證 的高效能之外,還有一點是非常重要的,那就是程式的安全性保障。php除了自帶的幾種加密函式外,還有功能更全面的php加密擴充套件庫和。其中,mcrypt擴充套件庫可以實現加密解密功能,就是既能將明文加密,也可以密文還原。p...
mcrypt加密詳解
安裝和使用php的mcrypt擴充套件 程式設計師們在編寫 程式時,除了要保證 的高效能之外,還有一點是非常重要的,那就是程式的安全性保障。php除了自帶的幾種加密函式外,還有功能更全面的php加密擴充套件庫和。其中,mcrypt擴充套件庫可以實現加密解密功能,就是既能將明文加密,也可以密文還原。p...