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;

 

posted @ 2021-04-12 15:21  黄小涛  阅读(589)  评论(0编辑  收藏  举报