Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> шифрование 3DES на PHP и дешифрование на Delphi 
:(
    Опции темы
chiffa
Дата 16.6.2011, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: нет
Всего: -1



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

Код

$key = "sssssss";

    $input = "TEST STR";

  $td = mcrypt_module_open('tripledes', '', 'ecb', '');
    $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
    mcrypt_generic_init($td, $key, $iv);
    $encrypted_data = mcrypt_generic($td, $input);
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);  

echo $encrypted_data;




А на стороне клиента расшифровать после получения. Делаю так:

Код

Hash:= TDCP_3des.Create(Self);
     Hash.Init('sssssss',KeySize,nil);
     Output:= Hash.DecryptString(Get_Res);
ShowMessage (Output);
      Hash.Burn;
      Hash.Free;


Результат - не дешифрует... Может кто сталкивался с таким, подскажите как правильно организовать эту связку? Буду весьма признателен!
PM MAIL   Вверх
chiffa
Дата 20.6.2011, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: нет
Всего: -1



Никто не сталкивался с таким?....
PM MAIL   Вверх
kami
Дата 20.6.2011, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 23
Всего: 72



Цитата(chiffa @  20.6.2011,  15:17 Найти цитируемый пост)
Никто не сталкивался с таким?....

C PHP я не работал, но краткий поиск в интернете показал, что MCRYPT_RAND создает случайный (в принципе, и из названия понятно) вектор.
Приемному концу (компоненту 3Des) нужен этот вектор для правильной инициализации (а  никак не nil в качестве "отмазки").
В противном случае - о какой расшифровке может идти речь?

Кстати, попадались и примеры, как это безболезненно можно сделать (передать iv на приемный конец).

Это сообщение отредактировал(а) kami - 20.6.2011, 23:36
PM MAIL WWW   Вверх
chiffa
Дата 21.6.2011, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: нет
Всего: -1



>Кстати, попадались и примеры, как это безболезненно можно сделать (передать iv на приемный конец).

гм.. Если прямых ссылок на примеры не сохранилось, скажи по какому запросу искал, ибо мне найти не удалось...

PM MAIL   Вверх
kami
Дата 21.6.2011, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 23
Всего: 72



Цитата(chiffa @  21.6.2011,  09:26 Найти цитируемый пост)
, скажи по какому запросу искал,

Емнип, это второй пост снизу
PM MAIL WWW   Вверх
chiffa
Дата 11.7.2011, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: нет
Всего: -1



Насколько я тебя понял здесь "Hash.Init('sssssss',KeySize,nil);" вмесито nil должен быть мой $iv из ПХП. Но как его вставить когда переменная String, а должна быть Point. Перегнать не удается...
PM MAIL   Вверх
cat512
Дата 11.7.2011, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 438
Регистрация: 20.3.2007

Репутация: 7
Всего: 15



Неправильно криптоваться/декриптоваться данные могут по двум причинам:
1 Некорректная инициализация алгоритма 3DES!
2.Типы строковых буферов Ansi/Unicode.
Попробуй объявить буфер как AnsiString
PM MAIL   Вверх
chiffa
Дата 11.7.2011, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: нет
Всего: -1



AnsiString не помогло...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0757 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.