La librería SJCL es una librería para encriptar texto en Javascript. Fue creada por algunos estudiantes de la universidad de Stanford.
Funciona para, como su nombre lo dice, encriptar texto y datos en javascript y también para desencriptar los mismos. Es decir, encripta y desencripta usando una contraseña.
Ayer estaba implementando una API en Python, pero requería que los datos fueran encriptados con dicha librería. Así que buscando encontré una implementación que, aunque tenía algunos errores, los pude arreglar
Probé esto en Python versión 3, no sé cómo funcione en las versiones anteriores.
La librería, como lo mencioné, ya existe y puede verse en este sitio, pero como se pueden dar cuenta está un poco desatendida. De todos modos la instalé usando:
pip install sjcl
Intenté probar y salía lo siguiente:
Así que me puse a investigar (la solución era muy, muy sencilla, pero cuesta encontrarla) un poco, y analicé la salida del error. Decía que la excepción se lanzó en la línea 170 del archivo sjcl.py. Fui al repositorio de GitHub y busqué la línea 170:
ciphertext = cipher.encrypt(plaintext)
Investigando me di cuenta de que el error esperaba datos de tipo byte, no strings simples. Y encontré una respuesta en stackoverflow que sugería codificar los datos. Así que descargué el archivo (ventajas del código abierto), lo guardé en un lugar accesible, desinstalé usando pip uninstall sjcl (para que no hubiera confusiones al hacer el import), y cambié la línea 170, así:
ciphertext = cipher.encrypt(plaintext.encode("utf-8"))
Guardé los cambios, y probé:
Aquí dejo el código que usé para probar:
from sjcl import SJCL
texto_cifrado = SJCL().encrypt("Hola, soy un mensaje secreto", "Yo soy la palabra secreta")
print("Texto cifrado: ")
print(texto_cifrado)
texto_descifrado = SJCL().decrypt(texto_cifrado, "Yo soy la palabra secreta")
print("Texto descifrado: ")
print(texto_descifrado)
Eso es todo por hoy. Investigué la implementación porque la API de binbox.io necesita que los datos vayan codificados de esta manera. Pronto escribiré una entrada sobre ello.
El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…
En este post te voy a enseñar a designar una carpeta para imprimir todos los…
En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…
Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…
Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…
Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…
Esta web usa cookies.