Saltar al contenido

simple cifrar / descifrar lib en python con clave privada

Solución:

pyDES es una implementación DES y Triple-DES escrita completamente en Python.

Aquí hay un ejemplo simple y portátil que debería ser lo suficientemente seguro para las necesidades básicas de cifrado de cadenas. Simplemente coloque el módulo pyDES en la misma carpeta que su programa y pruébelo:

Computadora del remitente

>>> from pyDES import *  # pyDes if installed from pip
>>> ciphertext = triple_des('a 16 or 24 byte password').encrypt("secret message", padmode=2)  #plain-text usually needs padding, but padmode = 2 handles that automatically
>>> ciphertext
')xd8xbfFn#EYxcbiHxfax18xb4xf7xa2'  #gibberish

Computadora del destinatario

>>> from pyDES import *
>>> plain_text = triple_des('a 16 or 24 byte password').decrypt(')xd8xbfFn#EYxcbiHxfax18xb4xf7xa2', padmode=2)
>>> plain_text
"secret message"

Es posible que obtenga un error en Python3 del código de Computadora del destinatario

ValueError: pyDes can only work with encoded strings, not Unicode.

from pyDes import *

a = b')xd8xbfFn#EYxcbiHxfax18xb4xf7xa2'
plain_text = triple_des('a 16 or 24 byte password').decrypt(a, padmode=2)
print(plain_text)

Solo agrega b al comienzo del texto cifrado. Para un código más claro, asígnelo a una nueva variable (en este caso, es ay descifrar a de forma normal).

http://www.dlitz.net/software/pycrypto/ debería hacer lo que quiera.

Tomado de su página de documentos.

>>> from Crypto.Cipher import DES
>>> obj=DES.new('abcdefgh', DES.MODE_ECB)
>>> plain="Guido van Rossum is a space alien."
>>> len(plain)
34
>>> obj.encrypt(plain)
Traceback (innermost last):
  File "<stdin>", line 1, in ?
ValueError: Strings for DES must be a multiple of 8 in length
>>> ciph=obj.encrypt(plain+'XXXXXX')
>>> ciph
'21,343Nq214DY337T342pA372255311s210363,300j330250312347342I3215w3561303dgb/06'
>>> obj.decrypt(ciph)
'Guido van Rossum is a space alien.XXXXXX'

para python 2, debe usar keyczar http://www.keyczar.org/

para python 3, hasta que keyczar esté disponible, he escrito simple-crypt http://pypi.python.org/pypi/simple-crypt

Estoy respondiendo esto dos años tarde ya que las cosas han cambiado desde que se hizo la pregunta.

tenga en cuenta que las respuestas anteriores a esta pregunta utilizan cifrados débiles (según los estándares actuales) y no tienen ningún refuerzo clave. las dos recomendaciones aquí son probablemente más seguras.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *