Cifrado y descifrado de contraseñas

Cifrado y descifrado de contraseñas

He almacenado la contraseña como texto sin formato en un archivo txt. Ahora quiero escribir el script que leerá el texto sin formato del archivo txt y luego debería cifrarlo y descifrarlo.

Respuesta1

Cifrar una contraseña es inútil cuando no puedes mantenerla cifrada. En el instante en que lo descifras, vuelve a ser vulnerable.

No importa cuán criptográficamente difíciles sean, los métodos de cifrado y descifrado están ahí para que cualquiera pueda verlos y copiarlos de todos modos. Eso simplemente lo hace más tonto.

chmodSerá una defensa mucho mejor contra el espionaje que una máquina Rube Goldberg, pero con un poco de trabajo es posible que puedas evitar el uso de contraseñas almacenadas, lo cual sería algo muy bueno. Porque: Las contraseñas almacenadas de forma recuperable son temas calientes en materia de seguridad y deben evitarse. Son una idea tan mala que sudo, su, ssh, scpy sftpno solo los evites, todos están diseñados específicamente para evitar que tú también los uses.

Si planea que le solicite una contraseña, que tiene un uso limitado, pero consideraré la posibilidad de automatización de operaciones o algo así, puede usar una utilidad como openssl.

$ echo foobar | openssl enc -aes-128-cbc -a -salt -pass pass:asdffdsa
U2FsdGVkX1/lXSnI4Uplc6DwDPPUQ/WjHULJoKypTO8=

$ echo U2FsdGVkX1/lXSnI4Uplc6DwDPPUQ/WjHULJoKypTO8= | openssl enc -aes-128-cbc -a -d -salt -pass pass:asdffdsa
foobar

Alternativamente puedes hacer esto,

$ touch pass.txt && echo foobar > pass.txt
$ openssl bf -a -salt -in pass.txt -out secret && rm -f pass.txt
enter bf-cbc encryption password:
Verifying - enter bf-cbc encryption password:

$ openssl bf -d -a -in secret -out pass.txt
enter bf-cbc decryption password:

$ cat pass.txt
foobar

Respuesta2

Parece que quizás quieras reinventar la rueda. Mi sugerencia personal sería crear un archivo de texto con las contraseñas que desee, organizadas de una manera estéticamente agradable para usted (¿nombre de usuario, contraseña y sitio al que pertenece únicos en cada línea?).

Genere una clave RSA de 4096 bits seleccionando gpg --full-gen-key"RSA y RSA". O, diablos, técnicamente 2048 bits sigue siendo seguro de usar. Simplemente no bajes de 2048 bits.

gpg -e passwords.txtpara cifrar el archivo con las contraseñas que contiene.

Escribe el nombre del destinatario (que serías tú). Luego, una vez que haya terminado, verifique que password.txt.gpgexista. Luego elimine el archivo de contraseñas.txt original (sin cifrar).

Ahora la parte fácil.

Cuando desee una de las contraseñas en el archivo, ejecute gpg -d passwords.txt.gpg

Todo lo que tienes que recordar es la contraseña que elegiste al generar la clave RSA, y el contenido no cifrado se descargará en la salida estándar (el terminal que estás usando). Limón fácil de exprimir.

Una alternativa a RSA sería utilizar este método de generación de claves:

gpg --full-gen-key --expert

luego eligió la opción 9: "ECC y ECC". Para el algoritmo, elija Brainpool P-512. Generación de claves mucho más rápida que RSA e igual de segura con un tamaño de clave más pequeño. Preferencia personal realmente. El resto de mi respuesta (cifrado/descifrado del archivo de contraseña) sigue siendo válido.

Alternativamente, puedes ir alsúper tontoruta fácil y simplemente use software prefabricado como KeePassX para almacenar contraseñas cifradas.

información relacionada