ФорумПрограммированиеПыхнуть хотите?Готовые решения → Небольшой класс-обёртка для шифрования и кодирования

Небольшой класс-обёртка для шифрования и кодирования

  • Hight

    Сообщения: 1489 Репутация: N Группа: Адекваты

    Spritz 14 сентября 2010 г. 22:47, спустя 8 минут 41 секунду

    Ну хватит, реально. Хватит меня троллить, мне конечно приятно, но настроения нет. =)
  • Hight

    Сообщения: 1489 Репутация: N Группа: Адекваты

    Spritz 15 сентября 2010 г. 2:16, спустя 3 часа 29 минут 2 секунды

    <?php

    // Конфиг
    class MAIN
    {
    protected static $crypt_config = array('algorithm' => MCRYPT_BLOWFISH, 'mode' => MCRYPT_MODE_ECB, 'key' => 'crypt_key');
    }

    // Шифровалка/кодировалка
    class CRYPT extends MAIN
    {
    private static $resource;

    public static function encrypt($str)
    {
    self::$resource = mcrypt_module_open(parent::$crypt_config['algorithm'], null, parent::$crypt_config['mode'], null);
    mcrypt_generic_init(self::$resource, parent::$crypt_config['key'], mcrypt_create_iv(mcrypt_enc_get_iv_size(self::$resource), MCRYPT_RAND));
    $encrypt_string = mcrypt_generic(self::$resource, $str);
    mcrypt_generic_deinit(self::$resource);
    mcrypt_module_close(self::$resource);
    return $encrypt_string;
    }

    public static function decrypt($str)
    {
    self::$resource = mcrypt_module_open(parent::$crypt_config['algorithm'], null, parent::$crypt_config['mode'], null);
    mcrypt_generic_init(self::$resource, parent::$crypt_config['key'], mcrypt_create_iv(mcrypt_enc_get_iv_size(self::$resource), MCRYPT_RAND));
    $decrypt_string = mdecrypt_generic(self::$resource, $str);
    mcrypt_generic_deinit(self::$resource);
    mcrypt_module_close(self::$resource);
    return rtrim($decrypt_string);
    }
    }

    // Шифровалка/кодировалка 2
    class CRYPT2 extends MAIN
    {
    private static $resource = null;

    private static function up_resource()
    {
    if(!self::$resource)
    {
    self::$resource = mcrypt_module_open(parent::$crypt_config['algorithm'], null, parent::$crypt_config['mode'], null);
    mcrypt_generic_init(self::$resource, parent::$crypt_config['key'], mcrypt_create_iv(mcrypt_enc_get_iv_size(self::$resource), MCRYPT_RAND));
    }
    }

    public static function encrypt($str)
    {
    self::up_resource();
    return mcrypt_generic(self::$resource, $str);
    }

    public static function decrypt($str)
    {
    self::up_resource();
    return rtrim(mdecrypt_generic(self::$resource, $str));
    }
    }

    // Тест
    $crypt_time = 0;
    $crypt2_time = 0;

    for($i=0; $i<100; $i++)
    {
    $str = uniqid();

    $crypt_before = microtime(true);
    //echo "Encrypted '".$str."': ".($strd = CRYPT::encrypt($str))."<br>";
    //echo "Decrypted '".$str."': ".CRYPT::decrypt($strd)."<br>";
    $str = CRYPT::encrypt($str);
    $str = CRYPT::decrypt($str);
    $crypt_time += (microtime(true)-$crypt_before);

    $crypt2_before = microtime(true);
    //echo "Encrypted '".$str."': ".($strd = CRYPT2::encrypt($str))."<br>";
    //echo "Decrypted '".$str."': ".CRYPT2::decrypt($strd)."<br>";
    $str = CRYPT2::encrypt($str);
    $str = CRYPT2::decrypt($str);
    $crypt2_time += (microtime(true)-$crypt2_before);
    }

    echo 'CRYPT time: '.$crypt_time.'<br>CRYPT2 time: '.$crypt2_time;

    /*
    CRYPT time: 0.087938785552979
    CRYPT2 time: 0.0024271011352539

    Я в ахуе… С увеличением кол-ва итераций всё ещё наглядней. Надеюсь нигде не накосячил.
    */

    ?>
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 15 сентября 2010 г. 2:21, спустя 5 минут 13 секунд

    не обижайте Hight'а, он мне нравится =)
  • Hight

    Сообщения: 1489 Репутация: N Группа: Адекваты

    Spritz 15 сентября 2010 г. 2:22, спустя 1 минуту 27 секунд

    NRG, прогони у себя код. Посмотрим чья тачка быстрей =)
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 15 сентября 2010 г. 12:17, спустя 9 часов 54 минуты 12 секунд

    Hight, заинтриговал)))
    вечерком дома прогоню тесты =)
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 15 сентября 2010 г. 12:55, спустя 37 минут 54 секунды

    поставил себе закладку. вдруг это хорошая тема?
    ιιlllιlllι унц-унц
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 15 сентября 2010 г. 13:03, спустя 8 минут 11 секунд


    поставил себе закладку. вдруг это хорошая тема?
    idea! захуячить в непрочитанных приоритетность (как в гмаил ввели функцию). Закон пыхи знаю :) Седня вечером прикину как сделать и начну делать ))
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 15 сентября 2010 г. 13:04, спустя 1 минуту 32 секунды

    так а смысл? один хуй пыха будет на пайтоне переписываться как я понял
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 15 сентября 2010 г. 13:05, спустя 52 секунды


    так а смысл? один хуй пыха будет на пайтоне переписываться как я понял
    ага, но алгоритмы можно и там применить)
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 15 сентября 2010 г. 13:12, спустя 7 минут 11 секунд

    т

    на питон переход будет не по схеме -> готово! ВСЕ БЫСТРБЛЕАТЬТУДА!, а плавно, вначале тест(на саб домене, как я понял) основных функций, потом допиливание, снова тест и так далее, на сколько я понял Эдво :)
    Спустя 85 сек.


    так а смысл? один хуй пыха будет на пайтоне переписываться как я понял
    ага, но алгоритмы можно и там применить)
    +1
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 15 сентября 2010 г. 13:33, спустя 20 минут 32 секунды

    mario, ага, все так
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 15 сентября 2010 г. 16:11, спустя 2 часа 38 минут 8 секунд

    Все готовы учить питон?)))
    Спустя 20 сек.
    Или все уже начали, один я отсталый?)
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 15 сентября 2010 г. 16:16, спустя 5 минут 21 секунду

    SpartakuS, я еще php не выучил, какой бля питон…
  • Hight

    Сообщения: 1489 Репутация: N Группа: Адекваты

    Spritz 15 сентября 2010 г. 16:18, спустя 2 минуты 2 секунды

    Учите камасутру.
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 15 сентября 2010 г. 16:45, спустя 26 минут 35 секунд

    kostyl, у меня ситцация еще хуже :D

Пожалуйста, авторизуйтесь, чтобы написать комментарий!