简单的对称加密(有借鉴)

<?php
header('content-type:text/html;charset=utf-8');
/*
* 对称加密,解密
*/
/**
* 简单对称加密算法之加密
* @param String $string 需要加密的字串
* @param String $skey 加密EKY===密匙
* @return String
*/
$string="hello,world";
echo $string;
echo "<pre>";
function encode($string = "", $skey = 'cxphp') {
     //1、将原来的字符串加密   并分割成数组
  $strArr = str_split(base64_encode($string));
      //2、得到加密后数组的个数
  $strCount = count($strArr);
     //3、将密匙处理成数组,并拼接到已加密过的数组后面
  foreach (str_split($skey) as $key => $value) {
      if ($key <$strCount && $strArr[$key]) {
          $strArr[$key].=$value;
      }      
  }
     //4、将加密并拼接好的数组转换成字符串,并替换
  $arr=array('=', '+', '/');
  $arr1=array('***', '***', 'oo00o');
  return str_replace($arr,$arr1,join($strArr));
}
    // echo "<pre>";
     //print_r(encode($string));

/**
 * 加密步骤总结
 * 将原来的字符串加密   并分割成数组
 * 得到加密后数组的个数
 * 将密匙处理成数组,并拼接到已加密过的数组后面
 * 将密匙处理成数组,并拼接到已加密过的数组后面
 */




/**
* 简单对称加密算法之解密
* @param String $string 需要解密的字串
* @param String $skey 解密KEY
* @return Str
*/
$str=encode($string);
//echo $str;
function decode($str="",$skey="cxphp"){
    $arr=array('=', '+', '/');
      $arr1=array('***', '***', 'oo00o');
      $str2=str_replace($arr1,$arr,$str);
      //return $str2;
      $strArr2=str_split($str2,2);
      foreach (str_split($skey) as $key => $val) {
          if ($key<count($strArr2) && $strArr2[$key] &&$strArr2[$key][1]==$val) {
              $strArr2[$key]=$strArr2[$key][0];
          }
      }
       return base64_decode(join("",$strArr2));
      

}
echo "<pre>";
print_r (decode($str));
/**
 * 解密步骤与加密恰恰相反
 */
?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值