1
我想從M2Crypto一些現有的AES代碼轉換爲相當於pycrypto但文檔薄,尤其是對M2Crypto。我已將相關代碼縮減爲gist。主要問題是:移植AES碼pycrypto
- Pycrypto要求輸入的長度爲16的倍數,m2crypto不需要。
- 即使輸入長度是16的倍數,密文也不相同。經過對M2Crypto密碼參數的實驗後,結果發現將
padding
和key_as_bytes
設置爲false會使用pycrypto將其加密爲相同的密文。所以我需要在純python中模擬padding=True
和key_as_bytes=True
。
任何幫助將非常感激。
編輯:解決 - 要點已經具有同等M2Crypto/pycrypto代碼和測試更新,我會在那兒把它的情況下,有人發現了它在將來有用。
謝謝,這解決了填充問題!我更新了要點,並在將KEY_AS_BYTES更改爲false時驗證了密文匹配。現在需要弄清楚'key_as_bytes'的作用。 – gsakkis
如果你不那麼幸運,它是一個錯誤的'EVP_BytesToKey'(3)。我說不吉利是因爲OpenSSL使用專有的密鑰派生函數,這可能意味着在Python中實現它。這是可行的,如果你測試的很好,它在安全性方面並不是真正的問題,但它確實需要一些加密理解。 –
PS不要忘了,如果接受我的回答適合你的需要 –