Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2010.09.12;
Скачать: [xml.tar.bz2];

Вниз

Шифрование на Delphi и PHP   Найти похожие ветки 

 
George   (2010-06-13 14:26) [0]

Шифрование на Delphi и PHP
Встала тут у меня задача сделать зашифровать строку в дельфи, передать ее PHP скрипту, который расшифрует и произведет определенные манипуляции. Так вот попробовал использовать алгоритм AES, вот только, как я понял, он по разному работает в зависимости от длины ключа, хотя какая разница? Проблема в том, что сам я не реализовываю шифрование ибо долго и не умею, а скачал для дельфи компоненты DCP Crypt, а для PHP класс нашел. Но они как то по разному работают.  Это плохо ибо противоречит задаче. Порылся в исходниках этих дельфовых компонентов DCP Crypt, они после шифрования делают еще и Base64Encode. Короче говоря:
const RijndaelKey = "8BC82381BB364896898991966607D2F1";
...
ShowMessage(GetCryptedStr("1", RijndaelKey)); </code.
В результате этого кода получаю: 2w==

$key = "8BC82381BB364896898991966607D2F1";  
echo base64_encode(encrypt_str("1", $key));

А здесь: mL5wqOgamDd64dkJPytwyA==

Итак, вопроса два:
1. Может ли кто-то проверить, какой срабатывает криво - PHP или Delphi?
2. Есть ли у кого-то проверенные и работающие решения, когда можно шифровать на Delphi и расшифровывать на PHP (и наоборот)? Сам алгоритм побоку, лишь бы было реализовано и работало.


 
George   (2010-06-13 14:37) [1]

Прошу прощения, с тэгами накосячил :)


 
test ©   (2010-06-13 15:28) [2]

Если алгоритм правильно реализован, то на чем он запускается без разницы.


 
test ©   (2010-06-13 15:31) [3]

ИМХО
Base64 вообще предназначен для передачи бинарной информации через XML, ты перекодированную часть в Base64 код перекодируешь, а в Дельфи нет.


 
George   (2010-06-13 15:45) [4]


> test ©   (13.06.10 15:28) [2]

Дык это понятно. Я ж не сам реализовывал а просто готовое взял. Поэтому мне и интересно, где косяк. Если дело с Base64, то судя по результату вполне похоже на то, что оно используется.
Наилучшим вариантом было бы наличие у кого нибудь уже работающей и проверенной пары компонентов или классов.


 
test ©   (2010-06-13 15:53) [5]

В варианте с Дельфи нет, во всяком случае в том коде  что в теме, нету преобразования к Base64.
http://www.google.ru/codesearch?hl=ru&lr=&q=toBase64+lang%3Apascal&sbtn=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA


 
George   (2010-06-13 16:24) [6]


> в том коде  что в теме, нету преобразования к Base64.

Дык там Base64Encode встроено в глубинах компонента, т.е. в коде его не видно, но покопавшись в исходниках оно там было. По крайней мере мне так показалось. :))
А без него ведь кракозябры были бы, не?


 
palva ©   (2010-06-13 21:57) [7]

AES в чистом виде зашифровывает блок с фиксированным количеством битов, а не строку. Надо выяснять, какие дополнительные преобразования выполняются при зашифровке строки. Здесь может быть много разных вариантов, в том числе и самодельных. Вряд ли эта дополнительная обработка совпадет в Delphi и PHP. Можно использовать готовые программы зашифровки/рассшифровки БЛОКА, проверить их на совпадение в разных системах, а уже потом приделать к ним дополнительную обработку, реализовав ее самому.


 
George   (2010-06-13 22:40) [8]


> palva ©   (13.06.10 21:57) [7]

Да, я так думаю, Вы правы. :) Правда анализировать чужие реализации мне очень не хотелось, я решил погуглить и нагуглил вот что:
http://seofork.ru/rsa-delphi-cryptoapi-php-openssl/
Хочу завтра попробовать.


 
Дмитрий Т   (2010-06-14 00:25) [9]

2Автор

А чем непосредственно на апач передаете данные? Компоненты какие? Или свое?
Это поверх HTTP или полностью свой протокол?


 
Омлет ©   (2010-06-14 07:51) [10]

ssl только для иностранцев?


 
palva ©   (2010-06-14 08:26) [11]


> George   (13.06.10 22:40) [8]

А зачем вам асимметричная криптография? Вы хорошо представляете, что вам нужно?


 
George   (2010-06-14 09:07) [12]


> Дмитрий Т   (14.06.10 00:25) [9]

Да тупо строку передаю через POST.


> palva ©   (14.06.10 08:26) [11]

Ну по идее зашифровать передаваемые данныые надо.


 
Дмитрий Т   (2010-06-15 00:30) [13]


> George   (14.06.10 09:07) [12]
>
>
> > Дмитрий Т   (14.06.10 00:25) [9]
>
> Да тупо строку передаю через POST.


Т.е. через HTTP.
А какой компонент используется?
Инди или сам через сокеты делаешь?


 
George   (2010-06-15 07:22) [14]


> Дмитрий Т   (15.06.10 00:30) [13]

Инди, ага - TIdHTTP.


 
TRIx   (2010-06-15 08:25) [15]

сделай обычный base64 + замена символов A на Б, а то зачем тебе геморой.


 
palva ©   (2010-06-15 12:01) [16]


> TRIx   (15.06.10 08:25) [15]

Как раз делать он и не хочет, зачем ему геморой.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2010.09.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.004 c
2-1276166904
avgshron
2010-06-10 14:48
2010.09.12
CRC по модулю 256


2-1276937340
FEV
2010-06-19 12:49
2010.09.12
Как удалить динамические созд-е кнопки...


15-1276585131
brother
2010-06-15 10:58
2010.09.12
Любителям zx-spectrumа: видео...


2-1274820470
HRustBB
2010-05-26 00:47
2010.09.12
Как в TreeView определить область видимости


15-1276546519
xayam
2010-06-15 00:15
2010.09.12
Задача для математиков и/или программистов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский