#qt #python-3.x
#qt #python-3.x
Вопрос:
Я пишу небольшую программу с PyQt и python 3.
Программе необходимо знать имя пользователя и пароль для учетной записи электронной почты пользователя, чтобы использовать протокол POP3. И мне интересно, какая лучшая и, надеюсь, не слишком сложная практика для хранения этих вещей?
Спасибо.
Ответ №1:
Насколько я знаю, Qt не предлагает ничего для безопасного хранения паролей.
Но вы можете посмотреть библиотеку ключей python, она должна позволить вам получить доступ к любому «хранилищу паролей», доступному в системе, использовать зашифрованный файл через PyCrypto или хранить пароль в незашифрованном виде.
Комментарии:
1. Спасибо за ответ. Я думаю, что библиотека keyring — это то, что я ищу.
2. Я обнаружил, что библиотека keyring еще не поддерживает python 3, так есть ли какая-либо альтернатива, поддерживающая python 3?
3. @SpiritZhang Я опаздываю, но, посмотрев на
setup.py
брелок, я могу сказать вам, что Python 3 поддерживается
Ответ №2:
Для C я бы сделал следующее, вы можете настроить его на python
Пусть
QString username
QString password
Строки, которые пользователь вводит в режиме онлайн, редактируются,
// Encrypt the password using SHA1
QByteArray passHash = QCryptographicHash::hash(password.toUtf8(),QCryptographicHash::Sha1 );
QString passHashString(passHash.toHex());
Затем используйте QSettings или что-то еще, что вы хотите, чтобы сохранить пару имени пользователя и хэшированного пароля.
Каждый раз, когда пользователь пытается использовать приложение, вы можете хэшировать пароль, который он вводит для имени пользователя, и сравнивать его с сохраненным.
Обратите внимание, что при использовании этого подхода пароль необходимо вводить каждый раз, когда выполняется ваше приложение. Но, на мой взгляд, это безопаснее, чем хранить пароль в виде обычного текста.
Комментарии:
1. это хорошее решение для паролей, но не будет работать для хранения таких вещей, как токены обновления.
2. Очевидно, что это не позволяет использовать сохраненный пароль для аутентификации в другой службе, например, на сервере POP3.