zoukankan      html  css  js  c++  java
  • 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;
  • 相关阅读:
    JavaScript 事件
    Docker 部署asp.netcore
    Docker 安装
    JavaScript 窗口操作
    JavaScript 定时器
    JavaScript Dom
    Javascript try catch es5标准模式
    JavaScript 数组去重
    JavaScript 返回具体类型方法
    mysql 触发器
  • 原文地址:https://www.cnblogs.com/spareribs/p/14648193.html
Copyright © 2011-2022 走看看