欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PHP RC4算法

程序员文章站 2022-07-09 10:27:35
...
	/**
     * 描述 : RC4算法加解
     * 参数 :$encryptKey 加***,$str 加密字符串
     * 作者 : Smart.Chen
     */
    public function encrypRc4($encryptKey, $str)
    {
        $cipher      = '';
        $key[]       = "";
        $box[]       = "";
        $pwd_length  = strlen($encryptKey);
        $data_length = strlen($str);
        for ($i = 0; $i < 256; $i++) {
            $key[$i] = ord($encryptKey[$i % $pwd_length]);//取 ASCII 值
            $box[$i] = $i;
        }
        for ($j = $i = 0; $i < 256; $i++) {
            $j       = ($j + $box[$i] + $key[$i]) % 256;
            $tmp     = $box[$i];
            $box[$i] = $box[$j];
            $box[$j] = $tmp;
        }
        for ($a = $j = $i = 0; $i < $data_length; $i++) {
            $a       = ($a + 1) % 256;
            $j       = ($j + $box[$a]) % 256;
            $tmp     = $box[$a];
            $box[$a] = $box[$j];
            $box[$j] = $tmp;
            $k       = $box[(($box[$a] + $box[$j]) % 256)];
            $cipher .= dechex(ord($str[$i]) ^ $k);//10进制转16进制
        }
        return $cipher;
    }
相关标签: php php