使用PyCrypto(雖然我已經試過這在ObjC與OpenSSL的綁定以及):如何(成功)從命令行openSSL解碼編碼密碼?
from Crypto.Cipher import DES
import base64
obj=DES.new('abcdefgh', DES.MODE_ECB)
plain="Guido van Rossum is a space alien.XXXXXX"
ciph=obj.encrypt(plain)
enc=base64.b64encode(ciph)
#print ciph
print enc
輸出的base64編碼值:
ESzjTnGMRFnfVOJwQfqtyXOI8yzAatioyufiSdE1dx02McNkZ2IvBg==
如果你是在解釋,CIPH會給你
'\x11,\xe3Nq\x8cDY\xdfT\xe2pA\xfa\xad\xc9s\x88\xf3,\xc0j\xd8\xa8\xca\xe7\xe2I\xd15w\x1d61\xc3dgb/\x06'
夠簡單。我應該能夠管此輸出到OpenSSL和解碼它:
我測試,以確保B64解碼工程 -
python enctest.py | openssl enc -base64 -d
+ python enctest.py
+ openssl enc -base64 -d
,?Nq?DY?T?pA???s??,?jب???I?5w61?dgb/
不漂亮,但是你可以看到,它得到了解碼精「 dgb「和」Nq「仍然存在。
但去爲完整的東西:
python enctest.py | openssl enc -base64 -d | openssl enc -nosalt -des-ecb -d -pass pass:abcdefgh
+ python enctest.py
+ openssl enc -nosalt -des-ecb -d -pass pass:abcdefgh
+ openssl enc -base64 -d
bad decrypt
15621:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:461:
j?7????vc]???LE?m³??q?
我在做什麼錯?我已經嘗試使用-k abcdefgh -iv 0000000000000000或交互式輸入密碼 - 同樣的問題。
當然,我打算使用Blowfish CBC,我只是抓取樣本DES代碼進行快速測試=) 感謝您的幫助! – 2009-01-09 21:35:45