За последние 24 часа нас посетили 18715 программистов и 1603 робота. Сейчас ищут 894 программиста ...

Rijndael AES as3 class to php class, As3 класс шифрования

Тема в разделе "PHP для новичков", создана пользователем wir_wolf, 25 апр 2010.

  1. wir_wolf

    wir_wolf Активный пользователь

    С нами с:
    10 янв 2009
    Сообщения:
    183
    Симпатии:
    0
    Суть проблемы. Недавно подкинули класс шифрования в Action Script 3.0 а именно Rijndael AES алгоритм, восхищенный его действием попытался найти аналог в php, но безуспешно.
    У меня получилось написать декриптор, но когда я попытался написать енкриптор, пошли проблемы
    PHP:
    1. <?php
    2. function hex2bin($hex){return pack("H*" , $hex);}
    3.  
    4. // Decrypt Function
    5. function mc_encrypt($encrypt, $mc_key) {
    6.     $encoded = bin2hex( $encrypt) ;
    7.    $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC), MCRYPT_RAND);
    8.    $passcrypt = trim(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $mc_key, trim($encoded), MCRYPT_MODE_CBC, $iv));
    9.    $encode = bin2hex($passcrypt);
    10.  
    11.    return $encode;
    12. }
    13.  
    14. // Encrypt Function
    15. function mc_decrypt($decrypt, $mc_key) {
    16.    $decoded = hex2bin($decrypt);
    17.    $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC), MCRYPT_RAND);
    18.    $decrypted = trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $mc_key, trim($decoded), MCRYPT_MODE_CBC, $iv));
    19.    return substr($decrypted,16);
    20. }
    21.  
    22. $temp = mc_encrypt('127.0.0.1','temp_key');
    23.  
    24. echo mc_decrypt($temp,'temp_key');
    25.  
    26. echo "<==>";
    27.  
    28. echo $temp;
    29. ?>
    если я закодирую 127.0.0.1 и раскодирую этим же скриптом то увижу "31" а сам AS class нормально декриптирует.
    Декриптор работает 100% безотказно, а вот с енкриптором проблема. Как мне быть, чего не хватает в енкрипторе
     
  2. wir_wolf

    wir_wolf Активный пользователь

    С нами с:
    10 янв 2009
    Сообщения:
    183
    Симпатии:
    0
    Уважаемые модераторы, помогите пожалуйста. Ответ очень близко, вот только я не знаю как до него добраться, не хватает явно какой то мелочи)