Зашифруйте/, Дешифруют текстовый файл в Delphi?

Привет я хотел бы знать метод оптимального шифрования для шифрования текстового файла и ecryption.

Мой сценарий:

У меня есть программное обеспечение, имеющее два типа пользователей Administartor и Операторов. Наше требование состоит в том, чтобы зашифровать текстовый файл, когда Администратор вводит данные с помощью GUI и сохраняет его. Тот зашифрованный файл был бы введен для Оператора, и они просто должны выбрать его и использовать тот файл. Здесь файл должен быть, автоматически дешифруют данные для дальнейшего вычисления, когда Оператор выбирает те файлы.

Помогите мне, какое шифрование / метод дешифрования я должен использовать?

9
задан Hemant Kothiyal 6 May 2010 в 10:07
поделиться

3 ответа

Золотое правило при работе с криптографией - понять, что криптография в целом очень сложна.

Существует множество различных подходов/алгоритмов, и нельзя сказать, что какой-то один алгоритм/метод является лучшим. Все зависит от ваших потребностей и возможностей повлиять на распределение приложений и т.д.

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

Хорошее место для начала чтения о криптографии - http://en.wikipedia.org/wiki/Cryptography.

Что касается готового материала для Delphi, есть несколько хороших пакетов:

На страницах Торри также есть длинный список компонентов:

Я настоятельно рекомендую вам использовать некоторые из существующих реализаций и не начинать делать свою собственную, поскольку создать безопасный рабочий крипто-алго очень и очень сложно.

19
ответ дан 4 December 2019 в 08:32
поделиться

По правде говоря, не существует "лучшей" техники. Все зависит от чувствительности данных, которые вы пытаетесь защитить, и количества людей, которые могут получить доступ к этим данным. То, что может быть "лучшим" для меня, может оказаться излишеством для вашего проекта. В вашем случае можно использовать любой метод шифрования с двумя ключами. Или асимметричный ключ. По сути, у администратора есть один ключ, а у оператора - другой. Администратор может шифровать файлы, но он не сможет расшифровать их снова, если у него нет ключа оператора. Оператор может расшифровать файл и - при необходимости - зашифровать файл, доступ к которому имеет только администратор. (Асимметричные ключи шифруют в обе стороны.)

Существует несколько решений, использующих эти асимметричные ключи. Лучшим будет то, которое вы сможете добавить в свой проект самым простым способом и при этом обеспечить достаточную защиту для ваших нужд.

Построение собственного алгоритма асимметричного ключа тоже возможно, если вы настоящий маг математики. Вычисления сложны и в большинстве решений включают чрезвычайно высокие простые числа. Как сказал К. Санделл, найдите хорошее, существующее решение, которое наилучшим образом соответствует вашим потребностям.

3
ответ дан 4 December 2019 в 08:32
поделиться

При перемещении шифрованного сообщения из одного места/приложения в другое необходимо решить одну из проблем - где хранить ключи шифрования/дешифрования.

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

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

3
ответ дан 4 December 2019 в 08:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: