За последние 24 часа нас посетили 17280 программистов и 1681 робот. Сейчас ищут 974 программиста ...

Как зашифровать данные и потом расшифровать?

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

  1. Ambrella

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

    С нами с:
    10 ноя 2007
    Сообщения:
    206
    Симпатии:
    0
    Подскажите как без функции encrypt ( ) зашифровать данные и расшифровать их потом определенным ключем?
     
  2. +Sten+

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

    С нами с:
    27 авг 2007
    Сообщения:
    978
    Симпатии:
    0
    А для чего это надо? Какого вида данные шифровать?
     
  3. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Ambrella
    Написать свой шифратор/дешифратор
     
  4. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    когда-то подобной ерундой страдал, сейчас выкопал из залежей всякого мусора
    crypt.php
    PHP:
    1. <?
    2.  
    3.  function MyCrypt( $str,$t)
    4.  {
    5.   $m = strlen( $str );
    6.   $tlen = strlen( $t );
    7.   for( $i = $m-1; $i >= 0; $i-- )
    8.   {
    9.    $str[$i] = ($str[$i] ^ $t[$i%$tlen] );
    10.    $str[$i] = ($str[$i] ^ '.');
    11.    $str[$i] = ($str[$i] ^ '3');
    12.   }
    13.   return $str.substr(base64_encode($str), 0,$m);
    14.  }
    15.  
    16.  $curtime = time();
    17.  $utcdiff = date('Z', $curtime);  // get difference to UTC in seconds
    18.  $bmttime = $curtime - $utcdiff + 7200;  // BMT = UTC+0200
    19.  
    20.  $tt = base64_encode(md5(base64_encode(md5(base64_encode( date("H:i-m.d.y", $bmttime) )))));
    21.  
    22.     $USER = "Username";
    23.     $PASS = "Password";
    24.  
    25.  $USER = base64_encode(MyCrypt($USER, $tt));
    26.  $PASS = base64_encode(MyCrypt($PASS, $tt));
    27.  
    28.  
    29. ?>
    decrypt.php
    PHP:
    1. <?
    2.   error_reporting(E_ALL);
    3.  
    4.  function MyDeCrypt( $str, $t )
    5.  {
    6.   $m = strlen( $str );
    7.   $tlen = strlen( $t );
    8.   for( $i = $m-1; $i >= 0; $i-- )
    9.   {
    10.    $str[$i] = ($str[$i] ^ '3');
    11.    $str[$i] = ($str[$i] ^ '.');
    12.    $str[$i] = ($str[$i] ^ $t[$i%$tlen] );
    13.   }
    14.   return $str;
    15.  }
    16.  
    17.  
    18.  $curtime = time();
    19.  $utcdiff = date('Z', $curtime);  // get difference to UTC in seconds
    20.  $bmttime = $curtime - $utcdiff + 7200;  // BMT = UTC+0200
    21.  
    22.  
    23.  $USER = substr( $_POST['user'], 0, 255 );
    24.  $PASS = substr( $_POST['pass'], 0, 255 );
    25.  
    26.  $tt = base64_encode(md5(base64_encode(md5(base64_encode( date("H:i-m.d.y", $bmttime) )))));
    27.  
    28.  
    29.  $USER =  MyDeCrypt( base64_decode( $USER ) , $tt  );
    30.  $PASS =  MyDeCrypt( base64_decode( $PASS ) , $tt  );
    31.  
    32.  $USER = substr( $USER, 0 , strlen($USER)/2 );
    33.  $PASS = substr( $PASS, 0 , strlen($PASS)/2 );
    34.  
    35.   echo($USER);
    36.   echo '<br>';
    37.   echo($PASS);
    38. ?>
    ключём работает время
    PHP:
    1. <?php
    2.  $curtime = time();
    3.  $utcdiff = date('Z', $curtime);  // get difference to UTC in seconds
    4.  $bmttime = $curtime - $utcdiff + 7200;  // BMT = UTC+0200
    5. ?>
    заменить на что-нибудь другое, надеюсь, проблем не составит
     
  5. Ambrella

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

    С нами с:
    10 ноя 2007
    Сообщения:
    206
    Симпатии:
    0
    +Sten+
    у меня не работают функции encrypt () - а нужно куки заштфровать... А потом прочитать что в них...

    Luge
    Спасибо большое!
     
  6. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    +1 =)

    Ambrella
    :) Все равно лучше использовать свой. Посмотри как работает алгоритм Luge и напиши свой. Особых проблем возникнуть не должно...
     
  7. Ambrella

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

    С нами с:
    10 ноя 2007
    Сообщения:
    206
    Симпатии:
    0
    Да, спасибо!
    Направление понял!
    Сделаю свой алгоритм!