Как повторить DES-шифрование .Net Framework на PHP
От: Аноним  
Дата: 27.07.07 07:17
Оценка: 3 (1)
Две недели мучаюсь с проблемой несовместимости шифрования DES (и с другими вероятно алгоритмами такая же проблема) между dotNET и PHP.
Ну, не хочет расшифровывать PHP'шная библиотека mcrypt закодированную на dotNET информацию. Хоть убей...
В среде dotNET использую следующий класс: System.Security.Cryptography.DESCryptoServiceProvider
Меры типа *.PaddingMode = PaddingMode.Zeros и проч. для меня не подходит, т. к. само приложение dotNET написано до меня, и трогать я его не могу.
Нужно именно повторить этот алгоритм на PHP.
Весь коду не привожу — его много, все равно читать никто не будет.

Помогите, а то меня с работы уволят.
P. S. На PHP написана XML-веб служба, на .NET Framework — клиент этой веб-службы. Так вот.
http://www.aspnetworld.ru/ Хостинг для ASP.NET сайтов )))))) Бесплатные аккаунты для участников этого форума!!!!!


Данное сообщение получено с сайта www.gotdotnet.ru
Как повторить DES-шифрование .Net Framework на PHP
От: Аноним  
Дата: 29.07.07 15:54
Оценка:
Рефлектором посмотри да и всё...


Данное сообщение получено с сайта www.gotdotnet.ru
Как повторить DES-шифрование .Net Framework на PHP
От: Аноним  
Дата: 29.07.07 16:13
Оценка:
Можно чуть по-конкретнее. Каким рефлектором?
http://www.aspnetworld.ru/ Хостинг для ASP.NET сайтов )))))) Бесплатные аккаунты для участников этого форума!!!!!


Данное сообщение получено с сайта www.gotdotnet.ru
Как повторить DES-шифрование .Net Framework на PHP
От: Аноним  
Дата: 29.07.07 16:16
Оценка:
Тут лежит рефлектор, которым можно посмотреть исходники фреймворка и любого не обфуцированного дотнет приложения.


Данное сообщение получено с сайта www.gotdotnet.ru
Как повторить DES-шифрование .Net Framework на PHP
От: Аноним  
Дата: 29.07.07 16:27
Оценка:
Хм. Любопытная вещь. Попробую...
Ну, это правда слишком сложный путь.
http://www.aspnetworld.ru/ Хостинг для ASP.NET сайтов )))))) Бесплатные аккаунты для участников этого форума!!!!!


Данное сообщение получено с сайта www.gotdotnet.ru
Как повторить DES-шифрование .Net Framework на PHP
От: Аноним  
Дата: 29.07.07 16:30
Оценка:
Другого, к своему глубокому сожалению, предложить не могу


Данное сообщение получено с сайта www.gotdotnet.ru
Как повторить DES-шифрование .Net Framework на PHP
От: Аноним  
Дата: 29.07.07 16:32
Оценка:
И на этом спасибо.
http://www.aspnetworld.ru/ Хостинг для ASP.NET сайтов )))))) Бесплатные аккаунты для участников этого форума!!!!!


Данное сообщение получено с сайта www.gotdotnet.ru
Как повторить DES-шифрование .Net Framework на PHP
От: Аноним  
Дата: 30.07.07 01:39
Оценка:
Реализуй DES самостоятельно
Mastering .NET doesn`t make you a geek. It makes you a geek worthy of a raise. (с) Jeffrey Richter


Данное сообщение получено с сайта www.gotdotnet.ru
Как повторить DES-шифрование .Net Framework на PHP
От: Аноним  
Дата: 30.07.07 09:02
Оценка:
Ага... Самостоятельно...
Аналогично идея с рефлектором.
Мне всего, то и нужно было использовать режим 'cbc' вместо 'ecb'.
Ну и, конечно ключ или вектор инициализации представленный в dotNET как:
byte[] Key = new byte[]{99, 78, 99, 78, 99, 78, 99, 78};
На PHP соответственно должен выглядить так:
$Key = chr(99).chr(78).chr(99).chr(78).chr(99).chr(78).chr(99).chr(78);
А то я его в таком виде делал: $Key = base64_decode("...");
Т. е. как массив байт, закодированный в строку Base64, что было неверно.
Не повторяйте моих ошибок...
//
// Моя реализация:
//
$desKey = chr(99).chr(78).chr(99).chr(78).chr(99).chr(78).chr(99).chr(78);
$desIV = chr(99).chr(78).chr(99).chr(78).chr(99).chr(78).chr(99).chr(78);

//
function myDecryptData($Data)
{
global $desKey, $desIV;
$td = mcrypt_module_open('des', '', 'cbc', '');
mcrypt_generic_init($td, $desKey, $desIV);
$DecData = mdecrypt_generic($td, $Data);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return $DecData;
}

function myEncryptData($Data)
{
global $desKey, $desIV;
$td = mcrypt_module_open('des', '', 'cbc', '');
mcrypt_generic_init($td, $desKey, $desIV);
$EncData = mcrypt_generic($td, $Data);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return $EncData;
}
http://www.aspnetworld.ru/ Хостинг для ASP.NET сайтов )))))) Бесплатные аккаунты для участников этого форума!!!!!


Данное сообщение получено с сайта www.gotdotnet.ru
Как повторить DES-шифрование .Net Framework на PHP
От: Аноним  
Дата: 31.07.07 03:09
Оценка:
Дык какой задал вопрос ("Как повторить DES-шифрование") такие и ответы получил


Данное сообщение получено с сайта www.gotdotnet.ru
Re: Как повторить DES-шифрование .Net Framework на PHP
От: kurzon  
Дата: 25.03.08 14:48
Оценка:
Здравствуйте, Megabotan, Вы писали:

M>Две недели мучаюсь с проблемой несовместимости шифрования DES (и с другими вероятно алгоритмами такая же проблема) между dotNET и PHP.

M>Ну, не хочет расшифровывать PHP'шная библиотека mcrypt закодированную на dotNET информацию. Хоть убей...
M>В среде dotNET использую следующий класс: System.Security.Cryptography.DESCryptoServiceProvider
M>Меры типа *.PaddingMode = PaddingMode.Zeros и проч. для меня не подходит, т. к. само приложение dotNET написано до меня, и трогать я его не могу.
M>Нужно именно повторить этот алгоритм на PHP.
M>Весь коду не привожу — его много, все равно читать никто не будет.

M>Помогите, а то меня с работы уволят.

M>P. S. На PHP написана XML-веб служба, на .NET Framework — клиент этой веб-службы. Так вот.

M>
Данное сообщение получено с сайта www.gotdotnet.ru

Скинь той шифратор на С#, хоть *.exe файл
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.