1. 程式人生 > >PyCrypto安裝和使用示例

PyCrypto安裝和使用示例

有的時候,用python來解密比用C++快很多,省去了很多建工程的力氣。Python是每一個加密解密人員必備的一門語言 :)

下面我們來說說如何使用Pycrypto來解密加密的資料。

                1)將python2.x安裝路徑加入環境變數path。

                2)按照PyCrypto readme 的指示安裝 python setup.py build -> python setup.py install -> python setup.py test.最後測試的時候可能會顯示有錯,沒關係,不管它。為 了減少錯誤,最好下載PyCrypto穩定版。

步驟二:安裝好了以後當時是使用了。我寫了如下測試指令碼:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys
from Crypto.Cipher import AES

obj = AES.new('lyp62/22Sh2RlXJF', AES.MODE_CBC, 'This is an IV456')#金鑰,模式,iv
filepath = sys.argv[1]
bin = open(filepath, "rb").read()
output = obj.decrypt(bin)

open(filepath+".o", "wb").write(output)
#print output
#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys
from Crypto.Cipher import AES   
key = '\x00'*16    
iv = b'\x4e\x09\x48\x3e\x38\xf5\xff\x72\x80\x12\x7b\x9e\xfb\x5c\x2d\x33'
mode = AES.MODE_CBC     
decryptor = AES.new(key, mode, iv)        
""" 上例中的key是16位, 還可以是24 或 32 位長度, 其對應為 AES-128, AES-196 和 AES-256. 解密則可以用以下程式碼進行: """  
#decryptor = AES.new(key, mode) 
#plain = decryptor.decrypt(ciphertext) 

filepath = sys.argv[1]
bin = open(filepath, "rb").read()
output = decryptor.decrypt(bin) 

open(filepath+".o", "wb").write(output)

這裡順便說一下我以前會碰到的一個問題:python指令碼預設不支援中文編碼,為了在指令碼中能使用中文路徑,可以在指令碼開頭加上指令碼編碼# -*- coding: utf-8 -*-。

指令碼的功能是讀取一個AES加密的資料檔案(你可能經常需要從WireShark里扣資料出來),而我們知道密碼,這時候就可以這樣子解密。解密的結果儲存在XXXX.o檔案裡。

是不是感覺很方便啊。。。