За последние 24 часа нас посетили 72066 программистов и 1652 робота. Сейчас ищут 926 программистов ...

Rijndael класс

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

  1. wir_wolf

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

    С нами с:
    10 янв 2009
    Сообщения:
    183
    Симпатии:
    0
    Не могу найти Rijndael класс. Есть куча примеров только они все не подходят, есть этот класс на флеши, а вот на PHP найти не могу..
    если текст "127.0.0.1" то в закодированном варианте оно выглядит примерно так "4850fc24399f70c43586a1d150162af7af18f67105511ccc1ef2881614f58279"
    Кто может помочь с этой проблемой?
     
  2. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Ёлки-палки, посмотри реализацию на ActionScript и перенести это на РНР, делов-то?
     
  3. wir_wolf

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

    С нами с:
    10 янв 2009
    Сообщения:
    183
    Симпатии:
    0
    Это фактически не реально так как там процедуры очень отличаются от PHP
    Код (Text):
    1.         public function encode(param1:String, param2:String, param3:String = "CBC") : String
    2.         {
    3.             var _loc_4:Array = null;
    4.             var _loc_5:Array = null;
    5.             var _loc_6:Number = NaN;
    6.             var _loc_7:Array = null;
    7.             var _loc_8:Array = null;
    8.             var _loc_9:int = 0;
    9.             var _loc_10:int = 0;
    10.             var _loc_11:int = 0;
    11.             _loc_4 = new Array();
    12.             _loc_5 = new Array();
    13.             _loc_6 = this.blockSize / 8;
    14.             if (param3 == CBC)
    15.             {
    16.                 _loc_4 = this.getRandomBytes(_loc_6);
    17.             }
    18.             _loc_7 = this.formatPlaintext(strToChars(param1));
    19.             _loc_8 = this.keyExpansion(strToChars(param2));
    20.             _loc_9 = _loc_7.length / _loc_6;
    21.             _loc_10 = 0;
    22.             while (_loc_10 < _loc_9)
    23.             {
    24.                
    25.                 _loc_5 = _loc_7.slice(_loc_10 * _loc_6, (_loc_10 + 1) * _loc_6);
    26.                 if (param3 == CBC)
    27.                 {
    28.                     _loc_11 = 0;
    29.                     while (_loc_11 < _loc_6)
    30.                     {
    31.                        
    32.                         _loc_5[_loc_11] = _loc_5[_loc_11] ^ _loc_4[_loc_10 * _loc_6 + _loc_11];
    33.                         _loc_11++;
    34.                     }
    35.                 }
    36.                 _loc_4 = _loc_4.concat(this.encryption(_loc_5, _loc_8));
    37.                 _loc_10++;
    38.             }
    39.             return charsToHex(_loc_4);
    40.         }// end function
    Маленький кусочек кода класса...
     
  4. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Абсолютно ничего такого, чего нельзя было бы сделать на РНР.
    Обычная работа со строками, разбиение на массив символов и конвертация к 16-ричный вид.
    Ничего особенного.
    Как раз фактически реально всё, практически - не всегда.
     
  5. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Фактически и практически не синонимы? "Учитывая факты" или "по факту", "учитывая практику" или "по практике". Антонимы: формально и теоретически, соответственно. Не? :)
     
  6. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Не.