Armazenei a senha como texto simples em um arquivo txt. Agora quero escrever o script que irá ler o texto simples do arquivo txt e depois criptografá-lo e descriptografá-lo.
Responder1
Criptografar uma senha é inútil quando você não consegue mantê-la criptografada. No instante em que você o descriptografa, ele fica vulnerável novamente.
Não importa quão difíceis sejam criptograficamente, os métodos de criptografia e descriptografia estão aí para qualquer um ver e copiar e colar de qualquer maneira. Isso só torna tudo mais bobo.
chmod
será uma defesa muito melhor contra espionagem do que uma máquina rube goldberg, mas com algum trabalho você poderá evitar o uso de senhas armazenadas, o que seria uma coisa muito boa. Porque: Senhas armazenadas de forma recuperável são batatas quentes de segurança e devem ser evitadas. Eles são uma ideia tão ruim que sudo
, su
, ssh
, scp
, e sftp
não apenas os evite, eles são todos projetados especificamente para impedir que você os use também.
Se você planeja solicitar uma senha, que tem uso limitado, mas considerarei a possibilidade de automação de operações ou algo assim, você pode usar um utilitário como o 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, você pode fazer isso,
$ 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
Responder2
Parece que você pode querer reinventar a roda. Minha sugestão pessoal seria criar um arquivo de texto com as senhas desejadas, organizadas de uma forma esteticamente agradável para você (nome de usuário, senha e site exclusivos aos quais pertence em cada linha?).
Gere uma chave RSA de 4.096 bits escolhendo gpg --full-gen-key
"RSA e RSA". Ou, diabos, 2.048 bits ainda é seguro para uso técnico. Apenas não vá abaixo de 2048 bits.
gpg -e passwords.txt
para criptografar o arquivo com as senhas nele contidas.
Digite o nome do destinatário (que seria você). Então, quando terminar, verifique se password.txt.gpg
existe. Em seguida, exclua o passwords.txt original (não criptografado).
Agora a parte fácil.
Quando você quiser uma das senhas do arquivo, execute
gpg -d passwords.txt.gpg
Tudo que você precisa lembrar é a senha que você escolheu ao gerar a chave RSA, e o conteúdo não criptografado será despejado no stdout (o terminal que você está usando). Limão fácil de espremer.
Uma alternativa ao RSA seria usar este método de geração de chaves:
gpg --full-gen-key --expert
em seguida, escolha a Opção 9 - “ECC e ECC”. para o algoritmo, escolha Brainpool P-512. Geração de chaves muito mais rápida que o RSA e igualmente segura com um tamanho de chave menor. Preferência pessoal, realmente. O restante da minha resposta (criptografia/descriptografia do arquivo de senha) ainda se aplica.
Alternativamente, você pode ir para odemaisrota fácil e apenas usar software pré-fabricado como KeePassX para armazenar senhas criptografadas.