Страница 1 из 2
Ищу пример функции симметричного шифрования openssl
Добавлено: 25.06.2018 01:09:31
Ism
Привет
Нужен пример функции для симметричного шифрования(строка + ключ = шифр и обратно), на паскале работающего кода не нашел
В командной сроке openssl оно работает
https://superuser.com/questions/724986/ ... decryptionНо хотелось бу культурно, через dll. В лазарусе есть модуль openssl, но там лишь вызовы. Есть dcpcrypt, но она заброшена, и примеры кода не работают, есть подозрение на несовместимость с fpc 3
Есть ли актуальные библиотеки шифрования для паскаля, не обязательно openssl ?
Re: Ищу пример функции симметричного шифрования openssl
Добавлено: 25.06.2018 09:01:37
fedan
В составе fpc не полный биндинг openssl.
https://github.com/decfpc/DelphiEncryptionCompendiumКод: Выделить всё
program project1;
uses
SysUtils,
DECUtil,
DECCipher;
const
STATIC_KEY: array[0..15] of Byte = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
var
IV: array[0..15] of Byte;
Plaintext: Binary;
Ciphertext: TBytes;
begin
RandomSeed;
Plaintext := 'abcdefghijklmnopqrstuvwxyz';
with TCipher_Rijndael.Create do
try
Mode := cmCBCx;
RandomBuffer(IV, 16);
Init(STATIC_KEY, 16, IV, 16);
SetLength(Ciphertext, Length(Plaintext));
Encode(Plaintext[1], Ciphertext[0], Length(Plaintext));
Done; // only needed when same object will be used for further operations
FillChar(Plaintext[1], Length(Plaintext), 0);
Decode(Ciphertext[0], Plaintext[1], Length(Ciphertext));
Assert(Plaintext = 'abcdefghijklmnopqrstuvwxyz');
finally
Free;
end;
end.
Добавлено спустя 1 час 34 минуты 45 секунд:Вот ещё покури
http://www.sql.ru/forum/1260973/delphi-encryption-compendium-vs-dcpcrypt
Re: Ищу пример функции симметричного шифрования openssl
Добавлено: 25.06.2018 18:28:28
Ism
fedan писал(а):В составе fpc не полный биндинг openssl.
Спасибо
Но както странно, биндинг есть, а использовать нельзя. Похоже шифрование для паскалистов не актуально, раз такое творится с библиотеками
Re: Ищу пример функции симметричного шифрования openssl
Добавлено: 25.06.2018 18:42:32
Снег Север
Шифрование на паскале представляет интерес только для студенческих лабораторок, для работы используют оптимизированные сишные библиотеки а на паскале только обертки вызовов, как вы и увидели.
Re: Ищу пример функции симметричного шифрования openssl
Добавлено: 25.06.2018 20:01:06
Ism
Снег Север писал(а):Шифрование на паскале представляет интерес только для студенческих лабораторок, для работы используют оптимизированные сишные библиотеки а на паскале только обертки вызовов, как вы и увидели.
Я бы с радостью использовал обертку вызовов openssl ибо это еще проверено и надежно, но так и не смог написать банальную функцию шифрования строки ключом ибо примеры кода только на С. Перегонять это на паскаль весьма непросто
Странность в том, что людям проще оказалось написать свое шифрование на паскале, чем сделать удобный вызов биндингов openssl
Re: Ищу пример функции симметричного шифрования openssl
Добавлено: 26.06.2018 07:10:16
Снег Север
Я никогда не интересовался конкретно openssl, но вызовы для сишных функций писал неоднократно. Если это именно си, а не си-пи-пи, то какие там трудности-то? Вполне однозначное соответствие переменных. Вызов как cdecl. Структуры - простые рекорды.
Re: Ищу пример функции симметричного шифрования openssl
Добавлено: 26.06.2018 15:18:37
fedan
Re: Ищу пример функции симметричного шифрования openssl
Добавлено: 26.06.2018 15:44:01
Vadim
Ism писал(а):Нужен пример функции для симметричного шифрования(строка + ключ = шифр и обратно)
А метод "xor" подойдёт?

Re: Ищу пример функции симметричного шифрования openssl
Добавлено: 26.06.2018 17:09:50
fedan
Во, ещё либу нашел, кто-нибудь пользовался?
Re: Ищу пример функции симметричного шифрования openssl
Добавлено: 26.06.2018 17:38:46
wofs
Может подойдет:
SeCryptНе пользовался, но рассматривал к применению когда-то.
Ну и небольшой
баян в тему.
Re: Ищу пример функции симметричного шифрования openssl
Добавлено: 27.06.2018 00:46:42
Ism
Vadim писал(а):А метод "xor" подойдёт?
Изначально я так и делал, но зачем использовать слабый шифр, если есть нормальные ? Поэтому решил закрыть вопрос написав шифрование по всем правилам
Re: Ищу пример функции симметричного шифрования openssl
Добавлено: 27.06.2018 11:33:06
Снег Север
Cryptographic algorithms
http://wolfgang-ehrhardt.de/crypt_en.htmlВсё придумано до нас!

Re: Ищу пример функции симметричного шифрования openssl
Добавлено: 28.06.2018 01:07:55
fedan
Re: Ищу пример функции симметричного шифрования openssl
Добавлено: 29.06.2018 11:38:06
Ism
Всем спасибо !
А то в freepascal найти чтото несколько сложнее, ибо на первых местах в поиске веб питон и php
Добавлено спустя 16 часов 44 минуты 32 секунды:Короче единственная актуальная библиотека оказалась в pascal coin, пришлось повозиться чтоб выковырять модули из проекта. И оно таки работает. Только в ней есть проверка версии библиотеки и переход на openssl 1.1
https://github.com/decfpc/DelphiEncryptionCompendium не собрался, ругался на gzio, хотя в лазарусе он есть
Остальные библиотеки либо устарели(не совместимы с fpc 3), либо плохо поддерживаются как модуль лазарус openssl
Re: Ищу пример функции симметричного шифрования openssl
Добавлено: 30.06.2018 08:00:03
Снег Север
Работа с openssl крутится вокруг почты и https, так что и вызовы функций востребованы в инди, синапсе. "Там их есть" (С)
