Ищу пример функции симметричного шифрования openssl

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Ищу пример функции симметричного шифрования openssl

Сообщение Ism » 25.06.2018 02:09:31

Привет

Нужен пример функции для симметричного шифрования(строка + ключ = шифр и обратно), на паскале работающего кода не нашел

В командной сроке openssl оно работает https://superuser.com/questions/724986/ ... decryption

Но хотелось бу культурно, через dll. В лазарусе есть модуль openssl, но там лишь вызовы. Есть dcpcrypt, но она заброшена, и примеры кода не работают, есть подозрение на несовместимость с fpc 3

Есть ли актуальные библиотеки шифрования для паскаля, не обязательно openssl ?
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Ищу пример функции симметричного шифрования openssl

Сообщение fedan » 25.06.2018 08:26:52

В составе 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
fedan
новенький
 
Сообщения: 70
Зарегистрирован: 15.09.2016 21:18:48

Re: Ищу пример функции симметричного шифрования openssl

Сообщение Ism » 25.06.2018 19:28:28

fedan писал(а):В составе fpc не полный биндинг openssl.

Спасибо

Но както странно, биндинг есть, а использовать нельзя. Похоже шифрование для паскалистов не актуально, раз такое творится с библиотеками
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Ищу пример функции симметричного шифрования openssl

Сообщение Снег Север » 25.06.2018 19:42:32

Шифрование на паскале представляет интерес только для студенческих лабораторок, для работы используют оптимизированные сишные библиотеки а на паскале только обертки вызовов, как вы и увидели.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2993
Зарегистрирован: 27.11.2007 16:14:47

Re: Ищу пример функции симметричного шифрования openssl

Сообщение Ism » 25.06.2018 21:01:06

Снег Север писал(а):Шифрование на паскале представляет интерес только для студенческих лабораторок, для работы используют оптимизированные сишные библиотеки а на паскале только обертки вызовов, как вы и увидели.

Я бы с радостью использовал обертку вызовов openssl ибо это еще проверено и надежно, но так и не смог написать банальную функцию шифрования строки ключом ибо примеры кода только на С. Перегонять это на паскаль весьма непросто

Странность в том, что людям проще оказалось написать свое шифрование на паскале, чем сделать удобный вызов биндингов openssl
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Ищу пример функции симметричного шифрования openssl

Сообщение Снег Север » 26.06.2018 08:10:16

Я никогда не интересовался конкретно openssl, но вызовы для сишных функций писал неоднократно. Если это именно си, а не си-пи-пи, то какие там трудности-то? Вполне однозначное соответствие переменных. Вызов как cdecl. Структуры - простые рекорды.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2993
Зарегистрирован: 27.11.2007 16:14:47

Re: Ищу пример функции симметричного шифрования openssl

Сообщение fedan » 26.06.2018 16:18:37

fedan
новенький
 
Сообщения: 70
Зарегистрирован: 15.09.2016 21:18:48

Re: Ищу пример функции симметричного шифрования openssl

Сообщение Vadim » 26.06.2018 16:44:01

Ism писал(а):Нужен пример функции для симметричного шифрования(строка + ключ = шифр и обратно)

А метод "xor" подойдёт? :-)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Ищу пример функции симметричного шифрования openssl

Сообщение fedan » 26.06.2018 18:09:50

Во, ещё либу нашел, кто-нибудь пользовался?
fedan
новенький
 
Сообщения: 70
Зарегистрирован: 15.09.2016 21:18:48

Re: Ищу пример функции симметричного шифрования openssl

Сообщение wofs » 26.06.2018 18:38:46

Может подойдет: SeCrypt
Не пользовался, но рассматривал к применению когда-то.

Ну и небольшой баян в тему.
Аватара пользователя
wofs
постоялец
 
Сообщения: 379
Зарегистрирован: 05.10.2009 10:16:55
Откуда: Астрахань

Re: Ищу пример функции симметричного шифрования openssl

Сообщение Ism » 27.06.2018 01:46:42

Vadim писал(а):А метод "xor" подойдёт?

Изначально я так и делал, но зачем использовать слабый шифр, если есть нормальные ? Поэтому решил закрыть вопрос написав шифрование по всем правилам
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Ищу пример функции симметричного шифрования openssl

Сообщение Снег Север » 27.06.2018 12:33:06

Cryptographic algorithms
http://wolfgang-ehrhardt.de/crypt_en.html
Всё придумано до нас! :D
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2993
Зарегистрирован: 27.11.2007 16:14:47

Re: Ищу пример функции симметричного шифрования openssl

Сообщение fedan » 27.06.2018 21:07:22

https://github.com/Fr0sT-Brutal/awesome-delphi#encryption

Добавлено спустя 5 часов 33 секунды:
Только EVP_aes_256_cbc, как из первого поста.Для старта пойдёт. Можно расширять самому.
https://github.com/PascalCoin/PascalCoin/blob/master/src/core/UAES.pas
fedan
новенький
 
Сообщения: 70
Зарегистрирован: 15.09.2016 21:18:48

Re: Ищу пример функции симметричного шифрования openssl

Сообщение Ism » 28.06.2018 19:53:34

Всем спасибо !

А то в freepascal найти чтото несколько сложнее, ибо на первых местах в поиске веб питон и php :)

Добавлено спустя 16 часов 44 минуты 32 секунды:
Короче единственная актуальная библиотека оказалась в pascal coin, пришлось повозиться чтоб выковырять модули из проекта. И оно таки работает. Только в ней есть проверка версии библиотеки и переход на openssl 1.1

https://github.com/decfpc/DelphiEncryptionCompendium не собрался, ругался на gzio, хотя в лазарусе он есть

Остальные библиотеки либо устарели(не совместимы с fpc 3), либо плохо поддерживаются как модуль лазарус openssl
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Ищу пример функции симметричного шифрования openssl

Сообщение Снег Север » 30.06.2018 09:00:03

Работа с openssl крутится вокруг почты и https, так что и вызовы функций востребованы в инди, синапсе. "Там их есть" (С) :D
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2993
Зарегистрирован: 27.11.2007 16:14:47

След.

Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

Рейтинг@Mail.ru