Информация
На главную Главная

Мой t-cards.ru
Войти Войти
Зарегистрироваться Регистрация

Разное
Форум Форум
Вернуться Форумы на t-cards.ru> Hard"n"Soft
Логин
Пароль
Регистрация Участники Поиск >> FAQ


Сообщения в теме: "Функция шифрования RC4 для PHP..."
27.05.2009 17:03
Admin

Регистрация: 05.10.2005
Проживание: Москва
Сообщения: 284
По умолчаниюФункция шифрования RC4 для PHP

/*Принимает на вход строковый ключ и строковые данные, возвращает преобразованные*/

function rc4 ($pass, $data) {
    $n = 8; //основание шифра

    $S = range(0, pow(2, $n) - 1);

    $ar_data = str_split($data);
    $dlen = count($ar_data);

    $ar_pass = str_split($pass);
    $klen = count($ar_pass);

    $j = 0;
    for ($i = 0; $i <= pow(2, $n) - 1; $i++){
        $j = ($j + $S[$i] + ord($ar_pass[$i % $klen])) % pow(2, $n);
        $tmp = $S[$i];
        $S[$i] = $S[$j];
        $S[$j] = $tmp;
    } //for

    $i = $j = 0;
    for ($m = 0; $m < $dlen; $m++) {
        $i = ($i + 1) % pow(2, $n);
        $j = ($j + $S[$i]) % pow(2, $n);

        $tmp = $S[$i];
        $S[$i] = $S[$j];
        $S[$j] = $tmp;

        $k = $S[($S[$i] + $S[$j]) % pow(2, $n)];

        $ar_data[$m] = chr(ord($ar_data[$m]) ^ $k);
    }

    return implode("", $ar_data);
}