Шифрование и расшифровка паролей

Шифрование и расшифровка паролей

Я сохранил пароль как простой текст в txt-файле. Теперь я хочу написать скрипт, который будет читать простой текст из txt-файла, а затем шифровать и расшифровывать его.

решение1

Шифрование пароля бесполезно, если вы не можете держать его зашифрованным. Как только вы его расшифруете, он снова станет уязвимым.

Неважно, насколько они криптографически сложны, методы шифрования и дешифрования доступны любому, кто может их увидеть и скопировать-вставить. Это просто делает их глупее.

chmodбудет гораздо лучшей защитой от слежки, чем машина Руба Голдберга, но, приложив некоторые усилия, вы сможете вообще не использовать сохраненные пароли, что было бы очень хорошо. Потому что: Извлекаемые сохраненные пароли — это острые вопросы безопасности, и их следует избегать. Это такая плохая идея, что sudo, su, ssh, scp, и sftpне просто избегайте их, они все специально разработаны, чтобы помешать вам использовать их.

Если вы планируете, чтобы он запрашивал у вас пароль (что имеет ограниченное применение, но я допускаю возможность автоматизации операций или чего-то в этом роде), вы можете использовать такую ​​утилиту, как 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

В качестве альтернативы вы можете сделать это,

$ 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

решение2

Похоже, вы хотите изобрести велосипед. Лично я бы посоветовал создать текстовый файл с вашими желаемыми паролями, упорядоченными эстетически приятным для вас образом (уникальное имя пользователя, пароль и сайт, к которому он принадлежит, на каждой строке?).

Сгенерируйте 4096-битный ключ RSA, gpg --full-gen-keyвыбрав "RSA и RSA". Или, черт возьми, 2048-битный ключ все еще можно использовать технически. Просто не опускайтесь ниже 2048-битного.

gpg -e passwords.txtдля шифрования файла с паролями в нем.

Введите имя получателя (это вы). Затем, как только он будет готов, проверьте, что он password.txt.gpgсуществует. Затем удалите оригинальный (незашифрованный) passwords.txt.

Теперь самое легкое.

Когда вам понадобится один из паролей в файле, запустите gpg -d passwords.txt.gpg

Все, что вам нужно запомнить, это один пароль, который вы выбрали при генерации ключа RSA, и незашифрованное содержимое будет выведено на stdout (терминал, который вы используете). Easy squeezy lemon peazy.

Альтернативой RSA может быть использование следующего метода генерации ключей:

gpg --full-gen-key --expert

затем выберите вариант 9 - "ECC и ECC". для алгоритма выберите Brainpool P-512. Гораздо более быстрая генерация ключей, чем RSA, и такая же безопасная с меньшим размером ключа. Личное предпочтение на самом деле. Остальная часть моего ответа (шифрование/дешифрование файла паролей) по-прежнему применима.

В качестве альтернативы вы можете пойтисупер-пуперпростой способ — просто используйте готовое программное обеспечение, например KeePassX, для хранения паролей в зашифрованном виде.

Связанный контент