Компонент для шифрования - PullRequest
8 голосов
/ 02 марта 2012

Мне нужна библиотека шифрования (VCL или нет), которая будет работать с Delphi XE2 & Unicode-строками ,
64 & 32 бит компилируется.
Мне это нужно для того, чтобы хранить данные в базе данных.

Ответы [ 3 ]

9 голосов
/ 02 марта 2012

Страница криптографии Delphi (DCPCrypt) - это библиотека с открытым исходным кодом, написанная Дэвидом Бартоном (davebarton@bigfoot.com) http://www.cityinthesky.co.uk/opensource/dcpcrypt, которая предоставляет коллекцию очень полных, бесплатных для экспорта, симметричных ключей, криптографических компонентов.

5 голосов
/ 02 марта 2012

Я нашел это на форуме Embarcadero, версия DCPCrypt, которая была обновлена ​​пользователем . Вот код , если кто-то сталкивается с той же проблемой.Я также нашел эту библиотеку ( TurboPower LockBox ), которая поддерживает Delphi Xe2

1 голос
/ 02 марта 2012

Все стандартные алгоритмы шифрования работают с байтами или битами.Вы должны иметь возможность использовать любую реализацию, которая поддерживает Delphi XE2 Win32 и Win64, по крайней мере, до тех пор, пока вы сами несете ответственность за декодирование и кодирование строк Unicode.В модуле RTL SysUtils есть класс TEncoding, который вы должны использовать для преобразования ваших строк Юникода в TBytes и из них, используя кодировку по вашему выбору.

Причина, по которой многие реализации алгоритмов шифрования Delphi принимают строковые параметры,в основном исторический, и его не следует понимать так, как будто реализации обязательно знают, что такое символ или строка.Во многих версиях Delphi назад, до того, как тип TBytes был добавлен в VCL / RTL, было пять способов объявить такие методы, и часто использование строк было наиболее удобным.,Это то, что использовала процедура Move и TStream.Недостатком этого является то, что наиболее распространенной ошибкой использования является попытка передать ссылочную типизированную переменную, такую ​​как строка или динамический массив, без предварительного разыменования.

Нетипизированные указатели.Похожая проблема.Разработчики, которые имеют, например, базовый или Java-опыт, не обязательно знакомы с концепцией указателей и ссылочных типов. Параметры открытого массива.Доступ к ним возможен только по элементам, поэтому они плохо сочетаются с алгоритмами шифрования, которые реализованы для работы с непрерывными блоками памяти. Специфичный для библиотеки TBytes = массив типа Byte.Язык Delphi строго типизирован, поэтому он будет работать только в том случае, если разработчик приложения для начала использовал тот же тип библиотеки, который быстро стал бы невозможным, например, если бы разработчику пришлось сначала получить TnxBytes из базы данных NexusDB, преобразовать его в StreamSec tBytes для шифрования, а затем в Indy TIdBytes для передачи по TIdTCPConnection. (Ansi) строк.Давайте смотреть правде в глаза.По всем вышеперечисленным причинам (и некоторым другим, таким как поддержка языка и RTL), большинство разработчиков использовали строки в качестве буферов памяти переменного размера.
...