首页 > Web开发 > 详细

php rc4 实现

时间:2020-11-20 17:35:41      阅读:23      评论:0      收藏:0      [点我收藏+]
<?php
 
function RC4($key, $pt)
{
    $s = array();
    for ($i=0; $i<256; $i++) {
        $s[$i] = $i;
    }
 
    $j = 0;
    $key_len = strlen($key);
    for ($i=0; $i<256; $i++) {
        $j = ($j + $s[$i] + ord($key[$i % $key_len])) % 256;
        //swap
        $x = $s[$i];
        $s[$i] = $s[$j];
        $s[$j] = $x;
    }
    $i = 0;
    $j = 0;
    $ct = ‘‘;
    $data_len = strlen($pt);
    for ($y=0; $y< $data_len; $y++) {
        $i = ($i + 1) % 256;
        $j = ($j + $s[$i]) % 256;
        //swap
        $x = $s[$i];
        $s[$i] = $s[$j];
        $s[$j] = $x;
        $ct .= $pt[$y] ^ chr($s[($s[$i] + $s[$j]) % 256]);
    }
    return $ct;
}
 
$text = ‘This is a test string.‘;
$md5 = md5(‘password‘);
echo $md5 . "\n";
$key = pack(‘H*‘, $md5);  //嫌的话,让 $key = ‘testkey‘; 试试
print bin2hex(RC4($key, $text));
echo "\n";
 
echo bin2hex(openssl_encrypt($text, "RC4", $key, true));
echo "\n";

  

php rc4 实现

原文:https://www.cnblogs.com/a-flydog/p/14011649.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!