需求:
将十六进制格式的字符串异或处理,得出结果并添加到字符串末位,再进行加密操作
加密方式:
原数据每个字节加上秘钥(oxd6),再进行高低4位位置互换
代码示例:
此处因个人需求,结果转为了字符串类型
function hexToStr(){ $arr = 'fe10010532690451524e353739ffd40508000200'; $string = ''; $result = 0; for($i=0;$i<strlen($arr)-1;$i+=2){ $str = $arr[$i].$arr[$i+1]; //异或校验 if($i>1){ $result^= hexdec($str); } $str= encryption($str); $string.=chr(hexdec($str)); } $result = encryption(base_convert($result, 10, 16)); //var_dump($result); $string =$string.chr(hexdec($result)); return $string; }
//加密 function encryption($str){ //加0xd6 $str = dechex(hexdec($str) + 0xd6); //高低位转换 $str = strrev($str); //结果处理 if(strlen($str)>=2){ $string = substr($str,0,2); }else{ $string = '0'.$str; } return $string; }