Просмотр поста

.
Бабушка_Batman
<?php
/*
* Кодирование сообщения по ключу
* автор: nc_soft
* 26.03.08
*/

$key="это ключ, если его не знать ничего не расшифровать";

$text="кодируемое сообщение";

//закодируем
$code=mcrypt_ecb(MCRYPT_DES,$key,$text,MCRYPT_ENCRYPT);

//сообщени закодировано, приняло вид бессмысленного набора байтов
echo "<p>сообщение закодировано: <b>$code</b></p>";

//раскодируем (надо применить ключ к этому набору байтов)
$decode=mcrypt_ecb(MCRYPT_DES,$key,$code,MCRYPT_DECRYPT);

echo "<p>сообщение раскодировано: <b>$decode</b></p>";

/*
что же делать, если на хостинге нет библиотеки для шифрования?
конечно же можно воспользоваться самопальными функциями их комментов сайта php.net или 
написать свою функцию 
*/

function encrypt($string, $key) {
    $result = '';
    for($i=0; $i<strlen($string); $i++) {
        $char = substr($string, $i, 1);
        $keychar = substr($key, ($i % strlen($key))-1, 1);
        $char = chr(ord($char)+ord($keychar));
        $result.=$char;
    }

    return base64_encode($result);
}

function decrypt($string, $key) {
    $result = '';
    $string = base64_decode($string);

    for($i=0; $i<strlen($string); $i++) {
        $char = substr($string, $i, 1);
        $keychar = substr($key, ($i % strlen($key))-1, 1);
        $char = chr(ord($char)-ord($keychar));
        $result.=$char;
    }

    return $result;
}

//закодируем
$code=encrypt($text,$key);

//сообщени закодировано
echo "<p>сообщение закодировано: <b>$code</b></p>";

//раскодируем
$decode=decrypt($code,$key);

echo "<p>сообщение раскодировано: <b>$decode</b></p>";

?>