Можно ли редактировать встроенные ресурсы в приложении Qt? - PullRequest
2 голосов
/ 22 марта 2012

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

В настоящее время я сохраняю файл паролей в ресурсе приложения во время компиляции.И после компиляции пароль не подлежит изменению.

Ответы [ 2 ]

3 голосов
/ 29 мая 2012

То, что вы пытаетесь сделать, это очень плохой стиль. Приложение никогда не должно изменять свой собственный исполняемый файл. В хорошо управляемой системе пользователи приложений все равно не могут писать в каталог установки. Используйте QSettings, вот для чего он. Вы можете сохранить его в файле .ini вместо реестра, если вы действительно этого хотите.

Убедитесь, что для паролей вы используете одностороннюю функцию - криптографически надежный хеш, , а не шифрование. Шифрование является двусторонним по определению: вы можете зашифровать, а затем расшифровать. Если вы считаете себя профессионалом, вам никогда не захочется использовать слово шифрование взаимозаменяемо с односторонней функцией (хэш). Это очень разные вещи, и вы будете и должны ругаться - как бы я знал, что вы на самом деле имеете в виду, если вы просто плохо понимаете язык или предлагаете что-то небезопасное по своей природе.

С паролями вы никогда не хотите разрешить расшифровку. Если кто-то предоставляет пароль для проверки, вы шифруете, а затем сравниваете зашифрованные версии. Таким образом, трудно восстановить оригинальный пароль (вероятно, использованный Винни в H.R. для ее учетной записи Facebook и для банковского счета руководителя компании). Убедитесь, что вы солите свой хэш, чтобы предотвратить атаки радужного стола. Вы, вероятно, должны убедиться, что знаете, что делаете: обучайте себя в этой области. Никто не рождается с этим. Давайте предотвратим еще одну самодельную схему небезопасных паролей ... их слишком много, они сделаны людьми, которые думают, что, ничего не зная об этом предмете, они каким-то образом создадут достаточно безопасное приложение. Увы, реальность здесь не может быть одурачена, и незнание обычно означает, что кто-то, кто знает знает, в конце концов, взглянет на ваш код (возможно, перепроектирует его) и высмеет его ... Завершить разглагольствования. *

1 голос
/ 12 июля 2012

Извините: вот пара менее эстетичных, более технических ответов:

В Windows это трудно или невозможно из-за того, что ОС не позволяет редактировать исполняемый файл во время работы: https://stackoverflow.com/a/1954479/58133

В Linux, возможно, выполнимо: http://www.overclockers.com/forums/archive/index.php/t-195048.html

...