软件和服务器通信过程中会使用到加密解密。
BSPHP完全支持二次开发自己的加密解密的的
BSPHP加密解密目录:include/applibapi/encryption
我们拿BASE64做参考 bsphp_base64.php (公布版是加密的代码,把加密代码直接替换即可)
<?php
/**
* @明文加密脚本
* 加密类型:Base64编码
*
* 加密解密函数组成
* 文件名_bsphp_mencrypt(系统传送数据库参数,系统传送密码参数) 加密
* 文件名_bsphp_mdecrypt(系统传送数据库参数,系统传送密码参数) 解密
*
* 以上2个为系统固定参数
*/
/**
* @加密
*/
function bsphp_base64_bsphp_mencrypt($data, $key)
{
//因为是标准的Base64编码所以key参数用不到
$data = base64_encode($data);
return ($data);
}
/**
* @解密
*/
function bsphp_base64_bsphp_mdecrypt($data, $key)
{
//因为是标准的Base64编码所以key参数用不到
$data = base64_decode($data);
return ($data);
}
RC4的加密解密
<?php
/**
* @明文加密脚本
* 加密类型:RC4编码
*
* 加密解密函数组成
* 文件名_bsphp_mencrypt(系统传送数据库参数,系统传送密码参数) 加密
* 文件名_bsphp_mdecrypt(系统传送数据库参数,系统传送密码参数) 解密
*
* 以上2个为系统固定参数
*/
//
//echo bsphp_rc4_bsphp_mencrypt('sssssss','wEzb8NVc1p7SNf6hIc');
//echo bsphp_rc4_bsphp_mdecrypt('xDTvL9ZAH8c5vhIMtxJ+kR1hzy4kxds+cpVbauxh0AzfrwnAOdMSFn2befIFPfrPo/Lvpkg7GfxjsS/D524IXO4FBnzJ12faatNFEKfuag8Gd/rbQljGMUvRc1S8wgNQzG9kKa77lwFmT327P9uDo3Iaib4PBpiBclVyUl0g3p+pRyAKlcITleuSz2ZzmwqgsRgnxaCDVNWzf255whzbV7On/oBONZ8uHHZAaqSO8Sxm1HKtHV31h13V32KssqBUZ4WRt8XVLBGkVwiIsEdYeSU3PXucwAqUPDMLaNEgwUrmi+yMmprwvygTP/CHTFD7WUdZYo1/xHdyP0Rev8OjIo9Pc132zTug3qp56V+yjBk49+Mosa1g8=','xDTvL9ZAH8c5vhIMtx');
/**
* @加密
*
* 文件名_bsphp_mencrypt(系统传送数据库参数,系统传送密码参数) 加密
*/
function bsphp_rc4_bsphp_mencrypt($data, $key)
{
//因为是标准的Base64编码所以key参数用不到
$data = rc4_en($data, $key);
return ($data);
}
/**
* @解密
*
* 文件名_bsphp_mdecrypt(系统传送数据库参数,系统传送密码参数) 解密
*/
function bsphp_rc4_bsphp_mdecrypt($data, $key)
{
//因为是标准的Base64编码所以key参数用不到
$data = rc4_de($data, $key);
return ($data);
}
function rc4_de($data, $pwd) //$pwd密钥 RC4解密
{
$cipher = '';
$data = base64_decode($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);
}
///$cipher = base64_decode($cipher);
return $cipher;
}
function rc4_en($data, $pwd) //$pwd密钥 RC4加密
{
$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);
}
$cipher = base64_encode($cipher);
return $cipher;
}
//echo rc4_en('xxxxxxxxxxx','bsphp');
//echo rc4_de('nYz3kY04UPKZkzwNxOz0BbV6EnB0MRbWYeM2qYGw','bsphp');