Quiero encriptar un archivo usando AES-256. ¿Cómo puedo hacer eso rápida y fácilmente, y cómo puedo yo, o alguien más, descifrarlo nuevamente?
fuente
Quiero encriptar un archivo usando AES-256. ¿Cómo puedo hacer eso rápida y fácilmente, y cómo puedo yo, o alguien más, descifrarlo nuevamente?
Desafortunadamente, no hay una solución fácil para asegurar sus cosas. Piense en su caso de uso, tal vez algo más que AES sea más adecuado.
Si desea un cifrado independiente de plataforma muy simple, puede usar openssl .
Si todavía quieres usar openssl:
Cifrado:
openssl aes-256-cbc -in attack-plan.txt -out message.enc
Descifrado:
openssl aes-256-cbc -d -in message.enc -out plain-text.txt
Puede obtener openssl para base64
codificar el mensaje utilizando el -a
interruptor tanto en el cifrado como en el descifrado. De esta manera, puede pegar el texto cifrado en un mensaje de correo electrónico, por ejemplo. Se verá así:
stefano:~$ openssl aes-256-cbc -in attack-plan.txt -a
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
U2FsdGVkX192dXI7yHGs/4Ed+xEC3ejXFINKO6Hufnc=
Tenga en cuenta que puede elegir entre cifrados y modos de operación. Para uso normal, recomiendo aes 256 en modo CBC. Estos son los modos de cifrado que tiene disponibles (solo contando AES):
aes-128-cbc ← this is okay
aes-128-ecb
aes-192-cbc
aes-192-ecb
aes-256-cbc ← this is recommended
aes-256-ecb
Ver también:
Tenga en cuenta:
OpenSSL le pedirá una contraseña. ¡Esta no es una clave de cifrado, no está limitada a 32 bytes! Si vas a transferir archivos con otra persona, tu secreto compartido debería ser muy fuerte. Puede usar este sitio para tener una idea de cuán buena es su contraseña:
Advertencia: He verificado que estos sitios no envían su contraseña al servidor, pero eso puede cambiar en cualquier momento. Use estos sitios con herramientas de desarrollo / inspector y verifique si envían algo antes de escribir su contraseña segura.
openssl aes-256-cbc
es más corto queopenssl enc -aes-256-cbc
y funciona también. La página del manual para esto está disponible ejecutandoman enc
. Nunca useecb
para datos que no deben ser moderados, siempre usecbc
.-salt
es redundante ya que es predeterminado. Si omite,-out filename
la salida se escribirá en la salida estándar, lo cual es útil si solo necesita analizar datos, pero no escribirlos en el disco. El siguiente comando muestra la cound línea para el texto llano:openssl aes-256-cbc -d -in filename | wc -l
. (otro uso, la lectura de un archivo:openssl aes-256-cbc -d -in filename | less
)/usr/bin/openssl enc -aes-256-cbc -a -salt -in $1 -out ${1}.enc
con el reverso como cabría esperar.openssl
herramienta de línea de comandos es principalmente una prueba de concepto para probar la biblioteca OpenSSL. La respuesta correcta a esta pregunta es GPG o algún archivador como 7z .openssl enc
realidad no es tan seguro si tienes una contraseña débil. Previamente recomendé cierto uso deopenssl enc
, pero ahora sugiero usarlogpg
porque usa un KDF de una mejor manera. Mira esta respuesta .Me gusta usar el
gpg
comando:Cifrar:
Taquigrafía:
Esto le pedirá una frase de contraseña.
Descifrar:
Taquigrafía:
También puede agregar
cipher-algo AES256
a~/.gnupg/gpg.conf
para hacer que AES256 sea el predeterminado. (Según la página de manual, es CAST5 )fuente
AES
(que significa AES-128). AES-128 es un poco más rápido y no es menos seguro.gpg
almacenamiento en caché de la contraseña?7z (cuando se utiliza la opción de contraseña ) utiliza un cifrado AES de 256 bits (con estiramiento de clave SHA256 ).
Instálelo (
p7zip-full
), haga clic con el botón derecho en el archivo o directorio que desea cifrar y elija Comprimir , .7z y Otras opciones / Contraseña .Para descifrar, haga clic derecho en el archivo .7z y elija Extraer aquí .
fuente
aescrypt
El sitio web vinculado contiene una herramienta de cifrado / descifrado aes de código abierto de 256 bits y es multiplataforma: MacOs, Windows, Linux y otros a través de Java.
Cifrar:
aescrypt -e <file>
Descifrar:
aescrypt -d <file>
Puede hacer una copia de seguridad y cifrar su carpeta de inicio utilizando la sintaxis:
instalación de ubuntu
Descargue y extraiga la fuente
otras plataformas
Descargue los binarios o el código fuente del sitio web.
fuente
Muchas de las sugerencias que hubiera hecho ya se han presentado en este hilo. Básicamente, openssl es realmente la forma más fácil de cifrar un archivo o script. Sin embargo, advertiría contra el uso de AES-256 solo porque no está disponible en todas las versiones de openssl en algunas plataformas. La mayoría de los sistemas operativos más nuevos ... es decir, Linux lo tiene. Pero otros como AIX 5.3 no lo hacen (creo que HP-UX también). Si tiene la intención de usar su archivo o script en diferentes plataformas, le recomiendo usar AES-128 porque está disponible en todas partes.
¿Cómo puede encriptar "rápida y fácilmente" un archivo usando AES-128?
Un sitio como www.ShellScrypt.com usa openssl AES-128 con bastante intensidad para encriptar los scripts de shell y luego hace que las copias encriptadas de los scripts sean ejecutables. Todo lo que tiene que hacer es pegar el script en el sitio, y se generará un archivo zip para usted. Ese archivo zip contendrá la versión encriptada (y ejecutable si es un script) de su archivo. Esto le permite encriptar " fácilmente " y " convenientemente " un archivo / script sin tener que cumplir con ningún requisito de paquete o módulo en cada sistema en el que pretende utilizar el script o ejecutar varios encantamientos complejos y confusos de comandos openssl.
A continuación se muestra un comando openssl básico de cifrado / descifrado que utiliza AES-128:
fuente
Agregando a la respuesta de Stefano Palazzo, creé una pequeña función bash que funciona de manera similar al comando base64.
Aes256 cifrará un archivo y luego lo codificará en base64. Al hacer lo contrario, decodificará, descifrará y escupirá el texto sin formato original.
Uso:
fuente