Как я могу сохранить пароль в своем приложении Qt?Как я могу сохранить пароль в своем приложении Qt?
Нет ли готовой к использованию библиотеки от Qt?
В настоящее время я сохраняю все свои конфигурации приложений с помощью QSettings.
Как я могу сохранить пароль в своем приложении Qt?Как я могу сохранить пароль в своем приложении Qt?
Нет ли готовой к использованию библиотеки от Qt?
В настоящее время я сохраняю все свои конфигурации приложений с помощью QSettings.
Если вам нужна безопасность, вы не должны хранить свои пароли. Однако вы можете использовать MD5 и HASH для шифрования, а затем поместить свой результат в QSettings.
Вот пример результата (формат Hex) для QSettings;
QString result = QString(QCryptographicHash::hash(("GoGuD"),QCryptographicHash::Md5).toHex());
Хранение несоленых паролей позволяет распахнуть двери для атаки радужного стола. Пожалуйста, добавьте соль в хеш-значение. –
Как сказал @demonplus, каково его требование безопасности? Конечно, он также может использовать $ salt + $ pepper, также возможно хеширование MAC. – goGud
Как я должен зашифровать хеш-код md5 в случае, если я храню пароль для стороннего сервиса?) – Galbarad
Ну, так что вы хотите каким-то образом зашифровать свой пароль. Проблема в том, что вам нужен пароль для расшифровки вашего пароля: |
Что вы можете сделать, если используете Linux с gnome (например, ubuntu), использовать gnome-keyring. Или другое обслуживание брелока. Таким образом, вы разблокируете свой системный ключ при входе в систему с помощью главного пароля и сохраняете все сохраненные пароли. По крайней мере, приложений, которые его поддерживают. В windows/mac может быть встроенный брелок, который вы можете использовать, но у меня нет опыта с этим.
Замечательная вещь о паролях заключается в том, что никому не нужно знать, что они на самом деле - кроме человека, который использует пароль. Вам не нужно хранить фактические пароли, зашифрованные или нет. Вы хотите сохранить что-то, что может быть использовано для проверки правильности пароля. Это известно как хэш пароля. Это позволяет избежать необходимости хранить сам пароль. Хэши - односторонние функции: невозможно узнать, что такое пароль, глядя только на его хэш. Вы можете попробовать различные пароли и посмотреть, не слишком ли они хеш для одного и того же, но есть много таких возможностей. –
Ну, да, но это требует, чтобы любая служба, которую вы аутентифицируете, принимала хеш, а не пароль. Но вы правы, большинство сервисов требуют хеша в наши дни. –
Я думаю, что путаница здесь заключается в том, является ли вопрос о проверке пароля для использования приложения или о сохранении пароля для какого-либо удаленного api. –
Если вам нужно просто авторизоваться, используйте данный код QCryptographicHash
класс. В другом случае, например, для создания соединения с базой данных, вам необходимо зашифровать свой пароль.
Один из возможных способов: SimpleCrypt
библиотека. В проекте есть хорошие документы и примеры использования.
Посмотрите на https://github.com/frankosterfeld/qtkeychain/. Он работает на Mac, Windows, Linux и имеет пример в исходном коде (см. Testclient.cpp).
Предоставьте основное содержание своей ссылки в своем ответе, поэтому, если ссылка умерла, ваш ответ все равно будет отличным. – Mistalis
Каковы ваши требования безопасности? Вы собираетесь хранить только пароль или его хэш? Где вы хотите его сохранить? – demonplus