Я ищу реализацию Delphi асимметричного алгоритма шифрования без любых зависимостей от внешнего DLLs. Действительно ли там кто-либо доступен?
Моя цель состоит в том, чтобы шифровать/дешифровать строку (или массив байтов) использование пары "открытый/закрытый ключ".
SecureBlackBox от Eldos предлагает собственное комплексное решение, включая управление сертификатами и доступ к внешним криптоустройствам (например, USB-токенам)
Взгляните на пакет FGInt на этом сайте: http://submanifold.be/
Если вы можете использовать службы Windows, есть Crypto API: http://msdn.microsoft.com/en-us/library/aa380255(v=VS.85).aspx
Если вы нацелены на Vista и выше, есть новый Cryptography API: Next Generation. Он также поддерживает криптографию эллиптических кривых: http://msdn.microsoft.com/en-us/library/aa376210(VS.85).aspx
Еще один очень хороший и достаточно полный пакет - Delphi Encryption Compendium (DEC) 5.2. Скачать (бесплатно с исходниками) можно с сайта http://www.torry.net/pages.php?id=519#939342.
Вы можете попробовать Lockbox - http://sourceforge.net/projects/tplockbox/ . Это бесплатно и включает в себя, среди прочего, RSA (Blowfish, MD5, SHA-1, DES, тройной DES, Rijndael и цифровую подпись сообщений).
В комплекте идет хороший пример RSA, демонстрирующий, как сгенерировать ваши публичные / частные ключи и как на самом деле зашифровать и расшифровать данные с помощью этих ключей.
В настоящее время я использую его с Delphi 2010.
Я понимаю, что исходный в вопросе указано «нет внешних DLL», но при отсутствии приемлемого ответа, возможно, вам следует взглянуть на OpenSSL DLL вместе с этой ссылкой Delphi , которая содержит модуль импорта для библиотеки и несколько хороших примеров того, как его использовать, включая шифрование RSA.
Я повозился с этим, и он работает очень хорошо. Чтобы заставить его работать с Unicode Delphi, необходимо внести некоторые изменения, но в основном они связаны с изменением PChar на PAnsiChar или PBytes.
Простые оболочки Delphi теперь позволяют мне подписывать / проверять / шифровать sym или asym и использовать SSL. И давайте будем честными - распространение DLL OpenSSL намного проще, чем у некоторых предложений Microsoft. К тому же это бесплатно и в хорошем состоянии.