The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Проблема php + mcrypt, !*! EvilX, 15-Июл-04, 12:28  [смотреть все]
Господа, я скоро сойду с ума.
И так задача. На стороне клиента шифрую строку по алгоритму 3DES CBC. IV передаю вместе с этой строкой. Передаю это всё php скрипту. Пытаюсь расшифровать и получается полная херня. Не расшифровывает он :( Вернее скрипт отрабатывает, но на выходе полная лажа!

Со стороны клиента: Delphi 7 + TDCP_3des.
Со стороны сервера: PHP 4.3.5 + mcrypt 2.4. Система FreeBSD. собирал из портов.

На стороне сервера скрипт выглядит так:
<Вытаскиваем шифрованую строку и IV>
$p_t = mcrypt_cbc(MCRYPT_3DES,$secret,$c_t,MCRYPT_DECRYPT,$iv);

По идее должен расшифровать. Но вот пример:
На входе шифрованая строка: iSaWEW0UhTlqy/8R+n96xESE2X2uGMugMUeylnHaH0dHXM4TtvP08vxyPVlvnCVFgtjJUfboRW0lDixp

На выходе после "расшифровки":
„ЕВфNмЪ/‡ ЩWВзЪ·ч‰ZІїrUd|у`иНUnOШ;кЦs¦ѓ&Ѕ‡(тејцъРкЂMгл№мЁfF1HкГusя,›ШјЌЏQl "ЋH@=zT~;E(РШ—iрLЎ§УќV;жд°@3Џ/иrYrjу@вє(61Хз/•ҐЛјHFфKшr0Дщ‰ќЇiС°’†—ё

Ключ: c47ed26705753d2200000000
IV(побайтно): 243,80,18,208,72,16,101,126

Попробуйте расшифровать. Если получится - стуканите в асю 194789332 или на мыло leonid(doggy)aml.ru

Что делать? Нифина не понимаю :(

  • Проблема php + mcrypt, !*! smtp, 13:46 , 15-Июл-04 (1)
    интересно, у меня после расшифровки выходит:

    èê¼úà8Ù ðOwî6j»ÛZ™Ç`R!”–µªÄ‰Ìõˆc±©D› ¥n.À#ÛâdÜãÚ¸Âö‡2ÈU³.}8V®p•ûhlÅaa¯5›¼tÈtÁ

    зашифрованая строка приведена в виде, в кот. она создаётся на клиенте или в таком, в каком она попадает в PHP скрипт?

    iSaWEW0UhTlqy/8R+n96xESE2X2uGMugMUeylnHaH0dHXM4TtvP08vxyPVlvnCVFgtjJUfboRW0lDixp

    • Проблема php + mcrypt, !*! EvilX, 13:53 , 15-Июл-04 (2)
      В скрипт передаётся в шестнадцатиричном виде (типа bin2hex).
      Вот эта же строка приходящая в скрипт:
      695361574557305568546c71792f38522b6e39367845534532583275474d75674d5565796c6e486148306448584d3454747650303876787950566c766e43564667746a4a5566626f5257306c44697870

      Дальше скрипт делает обратное преобразование hex2bin и полученное значение расшифровывает.
      После расшифровки должно получиться:
         100000&auth=a4445c73667f047b8147b9a3ef5993c5aa4&action=check

      • Проблема php + mcrypt, !*! ihor, 12:16 , 16-Июл-04 (3)
        пробовал шифровать
        >100000&auth=a4445c73667f047b8147b9a3ef5993c5aa4&action=check
        на разных платформах и библиотеках.

        в качестве зашифрованой строки
        >iSaWEW0UhTlqy/8R+n96xESE2X2uGMugMUeylnHaH0dHXM4TtvP08vxyPVlvnCVFgtjJUfboR>W0lDixp
        никак не получается.

        • Проблема php + mcrypt, !*! EvilX, 12:38 , 16-Июл-04 (4)
          Это получилось после шифрования DCPCrypt v2 в Delphi.
          Сейчас эксперементирую с другими библиотеками. Пока что тоже не получается.
          Может быть кто-нибудь даст конкретные рекомендации по процессу? Может быть я что-то не понимаю?
          Я делаю следующие действия:
          1. Криптую строку. Сейчас эксперементирую с пакетом tplockkbox. Может посоветуете какую-нибудь другую библиотеку для Delphi?
          2. В запросе передаю её серверу. Ключ серверу известен.
          3. Исполняется скрипт:
          $c_t = <шифрованая строка>
          $td = mcrypt_module_open ('tripledes', '', 'cbc', '');
          $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);
          mcrypt_generic_init ($td, $secret, $iv);
          $dec = mdecrypt_generic ($td, $c_t);

          По идее должна получиться расшифрованая строка с первыми 8-ю символами неверно расшифрованными, из-за того что iv не тот. Но не получается :(

          • Проблема php + mcrypt, !*! ihor, 16:04 , 16-Июл-04 (5)
            >По идее должна получиться расшифрованая строка с первыми 8-ю символами >неверно расшифрованными,
            >из-за того что iv не тот. Но не получается :(

            другой iv должен давать полностью другой текст, т.к. все 64-битные блоки в режиме CBC шифруютя с учётом предыдущих блоков:
            http://www.argosoftware.ru/Base/DES/Cbc.html

            • Проблема php + mcrypt, !*! EvilX, 08:56 , 19-Июл-04 (6)
              Ок. Использую ECB.
              Исходная строка:
              11111111&auth=a4445c73667f047b8147b9a3ef5993c5aa4&action=check
              Шифруем и отправляем:
              /c2OEyHm7tAKmJeMjR9UrVhLLti4xS62cYU7anKEvm70zY3ahxWMKAKMd12rzGw0Cwtj7QqcifViyJzC1SV8sA==
              88 символов.

              Расшифровываю на сервере:
              >±EњкљЮЌµOТRoќ@кcљВ6МЮ˜s‰iKBЉьхsЏДБoШwџ$% с ¶ »ZЪyґg#MХАФЈ/~ѓ9џЪIНўїѓіФуЄb:м 8-(

              Пробую на сервер зашифровать исходную строку:
              EcЊ#5Шя‰ШT¶‚чП№ќSq†-яУ!7ZњчмZМЇѕ·oXд>Жз+ў )№eС8@e5@kд - 64 символа.
              Получается вот так :((( Что делать?


              • Проблема php + mcrypt, !*! EvilX, 09:31 , 19-Июл-04 (7)
                >Ок. Использую ECB.
                >Исходная строка:
                >11111111&auth=a4445c73667f047b8147b9a3ef5993c5aa4&action=check
                >Шифруем и отправляем:
                >/c2OEyHm7tAKmJeMjR9UrVhLLti4xS62cYU7anKEvm70zY3ahxWMKAKMd12rzGw0Cwtj7QqcifViyJzC1SV8sA==

                Ух ты. Оказалось base64 :)





Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру