PyCrypto安裝和使用示例
阿新 • • 發佈:2019-01-27
有的時候,用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檔案裡。
是不是感覺很方便啊。。。