复制链接

扫一扫

二次开发 自定义加密解密开发

软件和服务器通信过程中会使用到加密解密。

BSPHP完全支持二次开发自己的加密解密的的

BSPHP加密解密目录:include/applibapi/encryption

我们拿BASE64做参考 bsphp_base64.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的加密解密

/**

  • @明文加密脚本
  • 加密类型: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(‘北海广作投资有限公司’,’bsphp’);
//echo ‘
‘;
//echo rc4_de(‘nYz3kY04UPKZkzwNxOz0BbV6EnB0MRbWYeM2qYGw’,’bsphp’);