0
我有一些數據是在C++中使用aes_256_cbc使用OpenSSL加密的,我需要使用Python解密它。我想到了使用M2Crypto,作爲OpenSSL的包裝應該使這容易,但我沒有得到相同的數據。Python的M2Crypto.EVP.Cipher不能與C++加密數據配合使用
我讀過test_AES
code,它沒有幫助。我正在收集數據,這只是不正確的數據。
c = Cipher(alg='aes_256_cbc', key=binaryKey, iv=iv, op=0, d='sha256', i=5, salt=knownSalt, padding=0)
v = c.update(binaryDataToDecrypt)
v += c.final()
在這一點上,據我所知,V應該是我的數據,這是不是...我發現另一個Q here on SO其中提及的是,前16個字節的數據的解密是鹽,所以我也試着與沒有運氣以下:
c = Cipher(alg='aes_256_cbc', key=binaryKey, iv=iv, op=0, d='sha256', i=5, salt=binaryDataToDecrypt[0:16], padding=0)
v = c.update(binaryDataToDecrypt[16:])
v += c.final()
AES/CBC中沒有鹽。雖然它可能是它與密碼(和散列函數/迭代計數)一起使用來派生密鑰......不過,不瞭解OpenSSL/M2Crypto。顯示用於加密的代碼可能會有所幫助。 –