5 / 4 / 2
Регистрация: 20.04.2016
Сообщений: 62
1
RAD XE3+

AES 256 + Base64

10.10.2019, 17:05. Показов 4575. Ответов 6
Метки нет (Все метки)

Доброго времени суток, может кто подсказать функцию шифрование на делфи aes 256.
Нужен хотя бы пример шифрование:
data+privat key.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.10.2019, 17:05
Ответы с готовыми решениями:

Base64 AES Rijndael
Добрый день, помогите пожалуйста с решением моей проблемы! я шифрую текст шифром AES Rijndael и...

Есть сгенерированный дайджест текстового файла методом SHA-2(256 битов). Как сделать из 256 битов 512?
Основной код unit Main; interface uses Windows, Messages, SysUtils, Variants, Classes,...

Декодирование Base64
Здравствуйте. Нужно декодировать письмо из base64. Для этого использую модуль EncdDecd. Он...

Sha1(base64)
Доброго времени суток для проверки\записи пароля в бд нужно узнать хеш, в моем случае...

6
2830 / 1501 / 602
Регистрация: 19.03.2019
Сообщений: 4,987
10.10.2019, 17:33 2
Лучший ответ Сообщение было отмечено Ler1k как решение

Решение

что, тебе враги гугл сломали?


Given this code in Delphi using DCrypt:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Uses DCPcrypt2, DCPblockciphers, DCPrijndael, DCPbase64;
 
 
procedure TForm1.Button1Click(Sender: TObject);
var Cipher : TDCP_rijndael;
    Data, Key, IV : ansistring;
    index, dataLength, bsize, pad: integer;
begin
  key := '12345678901234567890123456789012';
  IV  := '1234567890123456';
  Data := 'thisis128bitstxt';
 
  Cipher := TDCP_rijndael.Create(nil);
  try
    Cipher.Init(Key[1],256,@IV[1]);
 
    //don't miss padding
    {start padding}
    dataLength := Length(Data);
    bsize := (Cipher.BlockSize div 8);
    pad := bsize - (dataLength mod bsize);
    for index := 1 to pad do
      Data := Data+chr(pad);
    {end padding}
 
    Cipher.EncryptCBC(Data[1],Data[1],Length(Data));
  finally
    Cipher.Free;
  end;
 
  Data := DCPBase64.Base64EncodeStr(Data);
  Memo1.Lines.Add(Data);
end;
1
5 / 4 / 2
Регистрация: 20.04.2016
Сообщений: 62
10.10.2019, 19:43  [ТС] 3
Я пытался через эту библиотеку, ну у меня не получалось сложить только что бы шифровал, текст и приват кей. Без IV
и в формате ECB. Можете пожалуйста помочь?

Добавлено через 43 минуты
Спасибо разобрался с этой библиотекой, оказалось все очень просто...
1
2830 / 1501 / 602
Регистрация: 19.03.2019
Сообщений: 4,987
11.10.2019, 09:36 4
Цитата Сообщение от Ler1k Посмотреть сообщение
Спасибо разобрался с этой библиотекой, оказалось все очень просто...
так ты выложи решение (или расскажи, в чём была проблема). это будет полезно.
0
5 / 4 / 2
Регистрация: 20.04.2016
Сообщений: 62
11.10.2019, 09:43  [ТС] 5
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
procedure TForm1.Button1Click(Sender: TObject);
var Cipher : TDCP_rijndael;
    Data, Key, IV : ansistring;
    index, dataLength, bsize, pad: integer;
begin
  key := 'WUNQL217CgV-BHATCAh_NE1WXWFwLWou';
// IV  := '1234567890123456'; //// Здесь просто закоментил 
  Data := 'text';
 
  Cipher := TDCP_rijndael.Create(nil);
  try
    Cipher.Init(Key[1],256,@IV[1]);
 
    //don't miss padding
    {start padding}
    dataLength := Length(Data);
    bsize := (Cipher.BlockSize div 8);
    pad := bsize - (dataLength mod bsize);
    for index := 1 to pad do
      Data := Data+chr(pad);
 
    Cipher.EncryptECB(Data[1],Data[1]); /// Здесь убрал Length(Data)
  finally
    Cipher.Free;
  end;
 
  Data := DCPBase64.Base64EncodeStr(Data);
  Memo1.Lines.Add(Data);
end;
Не знаю правильно все или нет. Ну шифрует всё прям как и мне надо было..
1
2830 / 1501 / 602
Регистрация: 19.03.2019
Сообщений: 4,987
11.10.2019, 10:21 6
Цитата Сообщение от Ler1k Посмотреть сообщение
Не знаю правильно все или нет.
у меня возникает большой вопрос к этой строке
Цитата Сообщение от Ler1k Посмотреть сообщение
Delphi
1
Cipher.Init(Key[1],256,@IV[1]);
если ты закомментил заполнение строки IV то там - в лучшем случае, пустая строка, но, скорее всего, там какой-то мусор.

а так пробовал?

Delphi
1
 Cipher.Init(Key[1],256, nil );
1
5 / 4 / 2
Регистрация: 20.04.2016
Сообщений: 62
11.10.2019, 13:25  [ТС] 7
Не знаю даже как и по чему))
ну что так:
Delphi
1
Cipher.Init(Key[1],256,@IV[1]);
что так:

Delphi
1
 Cipher.Init(Key[1],256, nil );
Шифрует одинаково даже если просто оставить IV пустым..

Delphi
1
 IV  := '';
так же без изменений, шифрует как надо..


Ну ваш вариант точно по лучше..
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.10.2019, 13:25
Помогаю со студенческими работами здесь

base64 Decode\Encode
Привет.Подскажите пожалуйста, как декодировать и снова кодировать base64 в делфи? Кинул на форму...

Преобразование картинки в base64
Подскажите, пожалуйста, можно ли в Делфи 7 преобразовать картинку формата jpg в base64? Уже всё...

base64, utf-8 и idPOP3
Приходит с сервера ответ в формате: Content-Transfer-Encoding: base64 Content-Type:...

Перевести изображение в base64
Получаю изображение через TMemoryStream ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru