zoukankan      html  css  js  c++  java
  • PHP 异或 算法

    /**
    * PHP字符串“异或”算法
    * param array key
    * @param Request $request
    * @return mixed|string|void
    */
    public function setSecretKey(Request $request){
    $keyArr = $request->input('key');
    if(!is_array($keyArr) || empty($keyArr))
    return;
    foreach ($keyArr as $v){
    if(empty($v) || (strlen($v) != 32)){
    return;
    }
    }
    if(count($keyArr) == 1)
    return $keyArr[0];
    $arrLength = count($keyArr);
    $initKey = "00000000000000000000000000000000";
    $initKeyArr = str_split($initKey);
    for($i = 0;$i < $arrLength;$i++){
    $newKey = '';
    for($j = 0;$j < strlen($keyArr[$i]);$j++){
    $str = '';
    $tmpArr = str_split($keyArr[$i]);
    $tmpA = str_pad(base_convert($tmpArr[$j],16,2),4,0,STR_PAD_LEFT);
    $tmpB = str_pad(base_convert($initKeyArr[$j],16,2),4,0,STR_PAD_LEFT);
    for($k=0;$k<strlen($tmpA);$k++){
    $str .=(intval($tmpA[$k]) ^ intval($tmpB[$k]));
    }
    $tmpOneKey = strtoupper(base_convert($str,2,16));
    unset($str);
    $newKey .= $tmpOneKey;
    }
    unset($initKeyArr);
    $initKeyArr = str_split($newKey);
    }
    return join($initKeyArr);
    }
    ---------------------
    作者:JasonHome
    来源:CSDN
    原文:https://blog.csdn.net/qq_29627497/article/details/82964467
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    [Effective JavaScript 笔记]第54条:将undefined看做“没有值”
    [Effective JavaScript 笔记]第53条:保持一致的约定
    UDP打洞原理介绍
    Uboot启动分析之Start.S
    MMU
    linux_shell
    SSH2配置
    线程同步
    C#线程基础
    客户端服务器通讯常用的一种方法——Marshal类
  • 原文地址:https://www.cnblogs.com/xinyixuan/p/11322144.html
Copyright © 2011-2022 走看看