私はAES-256とPythonをbase64で使ってタイムスタンプを暗号化しようとしています。出力のOpenSSLの換算は、このコマンドで生成されます。OpenSSLのようなAES-256を使ってPyCryptoで暗号化
openssl enc -aes256 -pass pass:'1Lw2*kx18#AvNuij*iRL1nY1UA_#k8$+' -nosalt -base64 <<< "1489355323"
私のPythonのコードはそうのようになります。
import time
from base64 import b64encode
from Crypto.Cipher import AES
key = '1Lw2*kx18#AvNuij*iRL1nY1UA_#k8$+'
timestamp = "1489355323"
BS = 16
pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS)
iv = "\x00" * 16
aes = AES.new(key, AES.MODE_CBC, iv)
ciphertext = aes.encrypt(pad(timestamp))
print b64encode(ciphertext)
現在出力が異なっている、と私は、OpenSSLと同じ出力を取得する必要がありますコマンド。私が間違っていることは何か考えていますか?
あなたは暗号何のライブラリを使用していますか? – glibdud
pycrypt。インポートを含むようにコードを更新しました – Petru
これはパスワードとキーの問題ですが、PyCryptoのドキュメントにはアクセスできないので、私はそれを再生できません。 '-pass'の代わりにopensslの' -K'と '-iv'オプションを使って試してみましょう。 – glibdud