• js javascript 简易随机值穿插加解密【原】


    适用场景

    本方法适用于需要对敏感信息进行加密传输,但加解密要求又不高的场景,因为是前台的javascript加解密,所以其实还是能通过js代码分析出原始值来的。

    如果您对信息极其敏感, 比例登录密码这种, 建议还使用更安全的后台加密。

    流程图

    加密规则: 从池中随机添加一个字符到每一实际字符后100%生成偶数位字符串,
    加密样例: 从012345789每次取一随机值插到abc字符串的每个字符后,形成a8b6c9
    解密样例: 只抽取1,3,5,7,9奇数位,最后只抽出abc

    最纯粹的js写法

    <html>
    
    <body>
      <script type="text/javascript">
        function Code() {
          //key池 ,该池按需调整,也可以加上英文字母如 'abcdefghijklmnopqrstuvwxyz0123456789',但必须双方约定好.
          var key = '0123456789';
          //取随机数
          function sum(m, n) {
            var num = Math.floor(Math.random() * (m - n) + n);
            return num;
          }
          //取key池的随机数
          function getRandomChar() {
            var index = sum(1, key.length);
            var result = key.charAt(index);
            return result;
          }
          //加密
          this.encode = function (src) {
            var result = "";
            var length = src.length;
            for (var i = 0; i < length; i++) {
              result += src.charAt(i) + getRandomChar();
            }
            return result;
          }
          //解密
          this.decode = function (src) {
            var result = "";
            var length = src.length;
            for (var j = 0; j < length; j++) {
              if (j % 2 == 0) {
                result += src.charAt(j);
              }
            }
            return result;
          }
        }
        
        //创建加密对象
        var code = new Code();
    
        //加密样例 
        var encodeValue = code.encode("abc");
        alert("encodeValue: " + encodeValue);
    
        //解密样例
        var decodeValue = code.decode(encodeValue);
        alert("decodeValue: " + decodeValue);
      </script>
      <div id="app">test</div>
    
    </body>
    
    </html>

     结果

    加密前的值为abc

    加密后的值为a3b2c9

  • 相关阅读:
    集合
    字典
    Visual Studio 2017 发布
    表现设身处地的方法:杜彬(Ben Duffy)方法
    Can RemObjects SDK parameters be passed via the URI?
    转:RemObjects SDK 简介
    转:RemObject 服务器端自调用的方法
    转: Delphi多层开发方案比较
    Embed
    log4d 的使用(转)
  • 原文地址:https://www.cnblogs.com/whatlonelytear/p/10144032.html
Copyright © 2020-2023  润新知