Ich versuche, einen Zeitstempel mit AES-256 und Python mit Base64 zu verschlüsseln. Der OpenSSL-Äquivalent des Ausgangs wird mit diesem Befehl erzeugt:Verschlüsseln mit AES-256 wie OpenSSL mit PyCrypto
openssl enc -aes256 -pass pass:'1Lw2*kx18#AvNuij*iRL1nY1UA_#k8$+' -nosalt -base64 <<< "1489355323"
Mein Python-Code sieht so aus:
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)
Zur Zeit der Ausgang ist anders, und ich brauche die gleiche Ausgabe wie die OpenSSL zu erhalten Befehl. Irgendeine Idee, was ich falsch mache?
Welche Krypto-Bibliothek verwenden Sie? – glibdud
pycrypt. Ich habe meinen Code aktualisiert, um Importe zu enthalten. – Petru
Ich habe das Gefühl, dass dies ein Passwort-vs-Schlüssel-Problem ist, aber ich kann nicht damit spielen, da ich im Moment nicht auf die PyCrypto-Dokumente zugreifen kann. Versuchen Sie vielleicht, die '-K' und' -iv' Optionen in openssl anstelle von '-pass' zu verwenden und sehen Sie, ob das passt? – glibdud