Как выбрать алгоритм шифрования для шифрования / дешифрования файла? - PullRequest
3 голосов
/ 26 июля 2011

Недавно я пишу программу QT, которая требует, чтобы я зашифровал / расшифровал файл. Я новичок в шифровании, где я совершенно ничего не знаю о том, как сделать шифрование с помощью программирования. Пройдя некоторое время, я нашел эту тему , которая очень похожа на мою цель. Они предлагают использовать crypto ++, но моя проблема в том, что когда я туда добираюсь, есть много вариантов для шифрования. Я просто хочу зашифровать файл, мне не нужен сложный файл, и мне не нужен пароль для открытия файла. Только моя программа может открыть и прочитать этот файл.

Могу ли я узнать, как выбрать подходящий мне алгоритм шифрования?

Спасибо @!

Ответы [ 3 ]

9 голосов
/ 26 июля 2011

Возможно, было бы полезно короткое (очень короткое) введение в криптографические алгоритмы:

  • Симметричное шифрование: для шифрования и дешифрования используется один и тот же ключ.Примеры включают DES, AES и Blowfish.
  • Асимметричное шифрование: требуется определенный ключ для шифрования (открытый) и другой ключ для дешифрования (частный).Примеры включают RSA, DSA и ElGamal

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

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

3 голосов
/ 26 июля 2011

Учитывая объяснение цели в вашем ответе на мой комментарий к этому вопросу, кажется, что нет смысла выходить за пределы низкоуровневой обфускации XML. Вы можете, например, просто XOR содержимого файла с произвольным значением (например, шестнадцатеричный AA), или небольшое количество значений, которые вы используете для последовательных символов (AA, 23, B7, ...), а затем цикл для использования AA снова. Не похоже, что есть большая польза от использования настоящей библиотеки шифрования: любой, кто решил испортить работу своего программного обеспечения, все равно найдет способ ...

0 голосов
/ 26 июля 2011

Самым простым «реальным» симметричным алгоритмом, вероятно, является blowfish, в коде «c» и «c ++» есть пример кода, который очень легко интегрировать в ваш код

Существует независимый QCrypto lib (не является частью основного Qt src), но, возможно, это немного сложнее, чем нужно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...