Wie 3DES in Python mit dem M2Crypto Wrapper verschlüsseln?

Ich habe einen Arbeitstest eines Hardwaregeräts, das RSA-Verschlüsselung verwendet, in Python mit M2Crypto. Jetzt muss ich ein ähnliches Gerät testen, das die 3DES-Verschlüsselung verwendet. Aber ich kann nicht herausfinden, wie man M2Crypto benutzt, um Triple DES Verschlüsselung zu machen.

Ich weiß, dass es aus dieser Tabelle möglich sein sollte. Aber leider ist die Dokumentation von M2Crypto, die ich gefunden habe, skizzenhaft. (Die Homepage unter http://chandlerproject.org/ scheint zusammen mit Chandler zu sein.)

Ich habe nach 3DES und "OpenSSL API" gesucht und fand etwas schwer zu grok C-Code für die Entschlüsselung, die es so aussehen lässt, wie ich M2Crypto.EVP.Cipher verwenden muss. Aber ich habe keine Beispiele für die Verwendung von DES gefunden. Das nächste, was ich gefunden habe, ist dieser Blog-Post bei der Verwendung für AES-Verschlüsselung . Es sieht so aus, als müsste ich nur die richtigen Argumente für M2Crypto.EVP.Cipher.__init__() . Ich werde weiter graben, aber ich dachte, es lohnt sich, diese Frage zu stellen.

2 Solutions collect form web for “Wie 3DES in Python mit dem M2Crypto Wrapper verschlüsseln?”

Sehen Sie hier . Es gibt Referenz für die folgenden DES-Ziffern: 'des_ede_ecb', 'des_ede_cbc', 'des_ede_cfb', 'des_ede_ofb', 'des_ede_ofb', 'des_ede3_ecb', 'des_ede3_cbc', 'des_ede3_cfb', 'des_ede3_ofb'.

Die Homepage scheint hier zu sein.

Der folgende Code hat für mich gearbeitet:

 with open(keyfile, 'rb') as f: key = f.read() encrypt = 1 cipher = Cipher(alg='des_ede3_ecb', key=key, op=encrypt, iv='\0'*16) ciphertext = cipher.update(plaintext) ciphertext += cipher.final() 

Beachten Sie, dass die Keyfile eine 24-Byte-Binärdatei mit Paritätssatz ist, wie sie manchmal für DES benötigt wird.

Beachten Sie auch, dass das iv-Argument (ich glaube) ignoriert wird, wenn Sie 'des_ede3_ecb' verwenden, aber ich konnte nicht passieren.)

  • Entschlüsseln von Strings in Python, die mit MCRYPT_RIJNDAEL_256 in PHP verschlüsselt wurden
  • Fügen Sie Nonce und Block zählen in PyCrypto AES MODE_CTR
  • Entschlüsseln Sie SHA1 mit (Passwort) in Python
  • Python crypt in OSX
  • Ist es möglich, einen 100% sicheren virtuellen privaten Server zu haben?
  • Verschlüsseln von Passwörtern auf POST Django
  • Python - GPG entschlüsselt funktioniert aber GNUPG nicht
  • Entschlüsseln Sie eine AES-verschlüsselte Nachricht (verschlüsselt in Python) in Java
  • Wie kann ich bcrypt / scrypt auf appengine für Python verwenden?
  • XOR Python Text Verschlüsselung / Entschlüsselung
  • Verschlüsseln einer Datei mit RSA in Python
  • Python ist die beste Programmiersprache der Welt.