En primer lugar, no soy un experto en criptografía, sin embargo, sé cómo usar los algoritmos que otras personas han definido anteriormente en usos prácticos, es decir, siempre que cumplan sus promesas.
Lo que pasa es que necesito ciertas utilidades:
- Genere un par de claves públicas / privadas de x longitud, consígalos como binarios; y poder procesar contenido con él.
- Algún algoritmo de hash que consume mucha memoria y toma su tiempo; No necesito velocidad, necesito seguridad. (Estoy bastante seguro de que usarán contraseñas tontas)
- Un algoritmo de cifrado simétrico que genera texto cifrado basado en una contraseña (hash) que también debe ser bastante fuerte.
Mis respuestas actuales han sido:
- algoritmos RSA de OpenSSL.
- Scrypt (pensando en cambiar a argon2 debido a una gran documentación y envoltorios)
- OpenSSL AES CBC
Pero luego vas aquí y allá por Internet y dicen que Scrypt está dañado, usa bcrypt, no es argon2 https://github.com/P-H-C/phc-winner-argon2
es lo nuevo, OpenSSL tiene errores de seguridad, mejor usa LibreSSL, no usa libsodium. etc ... etc ...
Entonces, ¿cuáles son las mejores opciones? ... Necesito asegurar datos altamente confidenciales.
También probablemente usaré las envolturas Node.js porque necesito resultados rápidamente, ya que necesito hacer una demostración.