php實(shí)現(xiàn)rc4加密算法代碼
更新時(shí)間:2012年04月25日 19:06:52 作者:
此算法的解密方法是重新加密一次,便可還原,需要的朋友可以參考下
代碼
/*
* rc4加密算法
* $pwd 密鑰
* $data 要加密的數(shù)據(jù)
*/
function rc4 ($pwd, $data)//$pwd密鑰 $data需加密字符串
{
$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;
}
復(fù)制代碼 代碼如下:
/*
* rc4加密算法
* $pwd 密鑰
* $data 要加密的數(shù)據(jù)
*/
function rc4 ($pwd, $data)//$pwd密鑰 $data需加密字符串
{
$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;
}
相關(guān)文章
php下拉選項(xiàng)的批量操作的實(shí)現(xiàn)代碼
這篇文章介紹了php下拉選項(xiàng)的批量操作的實(shí)現(xiàn)代碼,有需要的朋友可以參考一下2013-10-10Laravel 解決419錯(cuò)誤 -ajax請(qǐng)求錯(cuò)誤的問(wèn)題(CSRF驗(yàn)證)
今天小編就為大家分享一篇Laravel 解決419錯(cuò)誤 -ajax請(qǐng)求錯(cuò)誤的問(wèn)題(CSRF驗(yàn)證),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10Zend Framework教程之路由功能Zend_Controller_Router詳解
這篇文章主要介紹了Zend Framework教程之路由功能Zend_Controller_Router,詳細(xì)分析了路由功能Zend_Controller_Router的原理,使用技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-03-03PHP實(shí)現(xiàn)采集中國(guó)天氣網(wǎng)未來(lái)7天天氣
這篇文章主要介紹了PHP實(shí)現(xiàn)采集中國(guó)天氣網(wǎng)未來(lái)7天天氣方法,本文詳細(xì)的講解了需求的實(shí)現(xiàn),也可以做為學(xué)習(xí)PHP采集的入門教程,需要的朋友可以參考下2014-10-10php file_get_contents抓取Gzip網(wǎng)頁(yè)亂碼的三種解決方法
用 file_get_contents() 函數(shù)抓取網(wǎng)頁(yè)會(huì)發(fā)生亂碼現(xiàn)象。有兩個(gè)原因會(huì)導(dǎo)致亂碼,一個(gè)是編碼問(wèn)題,一個(gè)是目標(biāo)頁(yè)面開(kāi)了Gzip,下面說(shuō)的就是開(kāi)了Gzip功能如何才能不亂碼的方法2013-11-11php中實(shí)現(xiàn)記住密碼下次自動(dòng)登錄的例子
這篇文章主要介紹了php中實(shí)現(xiàn)記住密碼下次自動(dòng)登錄的例子,本文使用cookie實(shí)現(xiàn)記住密碼和自動(dòng)登錄功能,需要的朋友可以參考下2014-11-11