¿Cómo puedo cifrar un archivo usando mi propio código de programación?
Soy un principiante, quiero aprender a cifrar.
¿Cómo puedo cifrar un archivo usando mi propio código de programación?
Soy un principiante, quiero aprender a cifrar.
Mi respuesta tiene dos partes:
Para el código de producción, debe NUNCA usar su propio criptografía. SIEMPRE utiliza una biblioteca criptográfica probada y revisada. Si su pregunta se refiere al código de producción, use una biblioteca en su lenguaje de programación objetivo. Para algunas bibliotecas de idiomas populares, vea aquí .
Si solo pretende aprender de esto, puede usar información gratuita sobre criptografía de los siguientes recursos: Cryptography Primer , Un curso de posgrado en criptografía aplicada y un curso en línea sobre criptografía . Probablemente necesitará algo de experiencia en programación, pero este no es el lugar para comenzar si no tiene ninguno. Los algoritmos de criptografía pueden variar en la dificultad de implementación, por lo que sugeriría que comience con un simple cifrado y continúe trabajando.
Aún así, creo que esta es una buena pregunta para tener una respuesta canónica, por lo que le daré una respuesta general para señalarle en la dirección correcta, sin dar un código específico.
Hacer el cifrado correctamente no es fácil . Implica leer y aprender mucho. Puede utilizar el cifrado para experimentar, pero no debe confiar en su propio código para proporcionar la seguridad adecuada. Si desea usar el cifrado en un producto que va a ser usado por otras personas o incluso compañías, pídale a un experto que lo revise (como consultor). Si usa esto en un proyecto de código abierto, debe agregar advertencias de que el cifrado podría contener vulnerabilidades desconocidas.
Con eso fuera del camino, esto es lo que debería estar buscando:
Antes de usar un algoritmo específico, como AES o RC4 o MD5, consulte Wikipedia para ver si es conocido y si tiene alguna vulnerabilidad. Por ejemplo, ya no se recomienda el uso de RC4 y MD5. Otros algoritmos que las personas publican en línea (que se hicieron a sí mismos) no son bien conocidos ni probados, y casi siempre están rotos. Esto es menos común en estos días en comparación con hace diez años, pero sigue siendo algo a tener en cuenta.
Si desea utilizar AES-256 en modo CTR con PBKDF2-SHA256 como KDF y HMAC-SHA256 como código de autenticación, ahora hay muchas cosas que debe consultar: ¿es seguro el AES-256? ¿Es seguro PBKDF2 y cómo debe usarse? ¿SHA256 es seguro? ¿Y es HMAC seguro? ¿Debería primero calcular el HMAC y luego cifrar, o al revés? ¿Cómo se debe utilizar el modo CTR? Etc.
Otro buen punto de partida para aprender sobre el cifrado en general es el curso Crypto 1 en Coursera . Da una visión general sólida, pero no es muy práctica. Dependiendo de lo ansioso que estés por sumergirte en la codificación de algo, este puede o no ser un curso aplicable a seguir.
Lea otras preguntas en las etiquetas encryption file-encryption programming