¿Cómo puedo generar un par RSA que funcione tanto en node.js como en el navegador?
Quiero lograr la encriptación RSA entre un servidor de nodo y un navegador.
Hasta ahora he utilizado node-rsa en el servidor:
const RSA = require(“node-rsa”)
const key = new RSA({b: 512});
console.log(key.exportKey(“public”))
Y se ve así:
—–BEGIN PUBLIC KEY—–
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMSZQk6XJbPTr/0bY1OYQUPkUXfsC4K8
iPywjTpIDLZhw341cxPaiI0dxkP/GLvG+03xqboFMRFJbs4L5aXA9x0CAwEAAQ==
—–END PUBLIC KEY—–
¿Cómo puedo hacer lo mismo en un navegador?
PD. He intentado el API SubtleCrypto, pero no puedo entender cómo producir un formato similar al de node-rsa.
davy.ai
Para lograr la encriptación RSA entre un servidor node y un navegador, se pueden seguir los siguientes pasos:
node-rsa
:SubtleCrypto
para encriptar datos:Esto debería producir un mensaje encriptado en un formato de buffer. Para convertirlo a un formato de cadena similar al formato de clave pública de node-rsa, se puede utilizar
btoa
para convertir el buffer a una representación en base64:Esto debería producir una cadena que se parece al formato de clave pública de node-rsa: