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)文章
thinkPHP5實(shí)現(xiàn)數(shù)據(jù)庫添加內(nèi)容的方法
這篇文章主要介紹了thinkPHP5實(shí)現(xiàn)數(shù)據(jù)庫添加內(nèi)容的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了thinkPHP5數(shù)據(jù)庫的配置、模型、控制器的使用及數(shù)據(jù)插入相關(guān)操作技巧,需要的朋友可以參考下2017-10-10
在Laravel5中正確設(shè)置文件權(quán)限的方法
這篇文章主要給大家介紹了關(guān)于如何在Laravel5中正確設(shè)置文件權(quán)限的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Laravel5具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
yii實(shí)現(xiàn)使用CUploadedFile上傳文件的方法
這篇文章主要介紹了yii實(shí)現(xiàn)使用CUploadedFile上傳文件的方法,結(jié)合具體的前端與后端處理代碼實(shí)例分析了CUploadedFile類的使用方法,需要的朋友可以參考下2015-12-12
php中的雙引號(hào)與單引號(hào)的基本使用及區(qū)別
字符串是一個(gè)非常要的知識(shí),在開發(fā)中,有的使用單引號(hào),有的使用雙引號(hào),這個(gè)是有區(qū)別的,這篇文章主要介紹了php中的雙引號(hào)與單引號(hào)的基本使用,需要的朋友可以參考下2023-06-06
thinkphp6使用mysql悲觀鎖解決商品超賣問題的實(shí)現(xiàn)
這篇文章主要介紹了thinkphp6使用mysql悲觀鎖解決商品超賣問題的實(shí)現(xiàn)2021-11-11
PHP中使用strpos函數(shù)實(shí)現(xiàn)屏蔽敏感關(guān)鍵字功能
這篇文章主要介紹了PHP中使用strpos函數(shù)實(shí)現(xiàn)屏蔽敏感關(guān)鍵字功能,本文用在發(fā)布文章保存到數(shù)據(jù)庫時(shí)前攔截敏感關(guān)鍵,需要的朋友可以參考下2014-08-08
PHP實(shí)現(xiàn)簡(jiǎn)易用戶登錄系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了PHP實(shí)現(xiàn)簡(jiǎn)易用戶登錄系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07
PHP中的靜態(tài)變量及static靜態(tài)變量使用詳解
這篇文章主要 紹了PHP中的靜態(tài)變量及static靜態(tài)變量使用詳解的相關(guān)資料,需要的朋友可以參考下2015-11-11

