pycrypto AES加密詳解

2022-08-14 22:12:08 字數 1085 閱讀 3502

最近在寫介面自動化指令碼,需要的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)

print

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