Ответ 5
Шифрование паролей на самом деле не дает вам гораздо большей защиты, чем хранение в открытом виде. Любой, кто имеет доступ к базе данных, вероятно, также имеет полный доступ к вашим машинам с веб-серверами.
Однако, если потеря безопасности приемлема и вам это действительно нужно, я бы сгенерировал новый ключевой файл (из хорошего источника случайных данных ) как часть процесса установки и используйте его. Очевидно, храните этот ключ как можно безопаснее (заблокированные права доступа к файлам и т. Д.). Использование единственного ключа, встроенного в исходный код, не является хорошей идеей - нет причин, по которым отдельные установки должны иметь одинаковые ключи.
Попробуйте использовать PAM . Вы можете создать модуль, который автоматически расшифровывает ключ, когда пользователь входит в систему. Это внутренне принцип работы GNOME-Keyring (если возможно). Вы даже можете писать модули PAM на Python с помощью pam_python .
Password Safe разработан Брюсом Шнайером и имеет открытый исходный код. Это для Windows, но вы должны иметь возможность видеть, что они делают, и, возможно, использовать его повторно.
http://www.schneier.com/passsafe.html
http://passwordsafe.sourceforge.net/
Прочтите это: Если вы вводите AES в свой код, вы делаете это неправильно.