php加密数字字符串,使用凯撒密码原理
接口参数需要加密,突然想到了凯撒密码,随手写了个加密数字版的,凯撒密码比较简单,被破解的几率较大,如果要用,还得引入其他机制,比如掺盐。
不知道凯撒密码的可以点击,凯撒密码
以下代码输出结果
1 //要加密的数字字符串 2 $str = '198756'; 3 //类似abcd....xyz 4 $arr = [0,1,2,3,4,5,6,7,8,9]; 5 //可以改变,从$arr中取值 6 $key = 9; 7 8 $f = ''; 9 $res = ''; 10 /* 11 * 加密 12 */ 13 //遍历数字字符串,进行加密 14 for($i=0;$i<=strlen($str)-1;$i++){ 15 $c = substr($str,$i,1); 16 $n = $c + $key; 17 $f .= $c; 18 19 if($n >= 10){ 20 $n = $n - count($arr); 21 } 22 $res .= $arr[$n]; 23 } 24 echo '<br/>'; 25 echo '原始数:'.$f; 26 echo '<br/>'; 27 echo '加密后:'.$res; 28 echo '<br/>'; 29 30 /* 31 * 解密 32 */ 33 $res2 =''; 34 //遍历数字字符串,进行解密 35 for($i=0;$i<=strlen($res)-1;$i++){ 36 37 $c = substr($res,$i,1); 38 $n = $c - $key; 39 if($c < $key){ 40 $n = $n + count($arr); 41 } 42 43 $res2 .= $arr[$n]; 44 } 45 echo '解密后:'.$res2;