php RC4加密解密

  • 内容
  • 相关
/*
    *@desc    rc4加密算法
    *@param   $pwd 密钥
    *@param  $data 要加密的数据
    */

   private function getRc4Encode($pwd, $data) {

        $cipher      = '';

        $key[]       = "";

        $box[]       = "";

        $pwd_length  = strlen($pwd);

        $data_length = strlen($data);

        for ($i = 0; $i < 256; $i++) {

            $key[$i] = ord($pwd[$i % $pwd_length]);

            $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 .= chr(ord($data[$i]) ^ $k);

        }
        return $cipher;

    }

本文标签:

版权声明:若无特殊注明,本文皆为《Leek》原创,转载请保留文章出处。

本文链接:php RC4加密解密 - https://pjax.cc/69.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

未显示?请点击刷新

允许邮件通知