¿Cómo cifrar un archivo con código? [cerrado]

-3

¿Cómo puedo cifrar un archivo usando mi propio código de programación?
Soy un principiante, quiero aprender a cifrar.

    
pregunta novice programmer 04.03.2017 - 16:01
fuente

2 respuestas

1

Mi respuesta tiene dos partes:

  1. 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í .

  2. 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.

respondido por el MiaoHatola 04.03.2017 - 16:17
fuente
1
  1. Esta es una pregunta muy amplia con muchos recursos en línea que ya habrían respondido a tu pregunta si los hubieses buscado.
  2. También está haciendo una pregunta relacionada con el código en el sitio web de Information Security StackExchange, mientras que las preguntas relacionadas con el código generalmente se deben hacer en StackOverflow.

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:

  • Cómo usar una biblioteca (en el lenguaje de programación de su elección) para cifrar un archivo, usando un algoritmo de cifrado seguro.
  • Cómo funciona el cifrado autenticado, de modo que pueda detectar cuándo se cambió el archivo después de que se cifró.
  • Cómo convertir una contraseña en una clave adecuada para su uso en un algoritmo de cifrado. La frase que debe encontrar es una función de derivación de claves .

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.

    
respondido por el Luc 04.03.2017 - 16:27
fuente

Lea otras preguntas en las etiquetas