简单镜像加密解密,支持html前端(javascript)与C#后台之间相互加解密

44 篇文章 0 订阅

大致思路:
将字符串:0-9、a-z、A-Z,顺序打乱,为基础字符串序列(即加密的key值),
再将此基础字符串反向排序生成对应的镜像字符串,
根据传入的字符串参数,将每一个字符去取镜像字符串中对应的字符,形成新的字符串。

在线体验地址:http://djk8888.3vdo.net/ajax/jiami.html

javascript代码:

 <script type="text/javascript">
        //对字母和数字的参数加密和解密
        function myEncodeDecode(str) {
            if (str == '') {
                //alert("请输入字符串!");
                return;
            }
            //var base = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";//以这个字符串为基准
            //var base = "0qQ1aA2zZ3wW4sS5xX6eE7dD8cC9rRfFvVtTgGbByYhHnNuUjJmMiIkKoOlLpP";//打乱顺序
            var base = "ElZkyNW2fqguL0PKoOvpM149GYJ8Ax6Fr3c5awebCTXQUdIiBD7hRszStVmjHn";//再乱一点           
            
            var back = base.split("").reverse().join("");//将基准字符串反向排序(镜像字符串)
            var strArr = str.split("");//传入的字符串转为数组
            var newStr = "";
            for (var i = 0; i < strArr.length; i++) {
                newStr += back.substr(base.indexOf(strArr[i]), 1);//取出原字母数字[镜像位置]的字母数字
            }
            return newStr;
        }
        </script>

C#代码(前后台的基本字符串必须约定为一样的,可以将此key值配置在web.config中):

    private static readonly string Encodekey = "ElZkyNW2fqguL0PKoOvpM149GYJ8Ax6Fr3c5awebCTXQUdIiBD7hRszStVmjHn"; //加密序列,注:必须和~/js/mirrorEncode.js中base值保持一致!
    public static string myEncode(string str)
    {
        if (string.IsNullOrEmpty(str) || string.IsNullOrWhiteSpace(str)) return "";

        string key = Encodekey;//加密序列      
        StringBuilder strBuild = new StringBuilder();
        for (int i = key.Length - 1; i >= 0; i--)
        {
            strBuild.Append(key[i]);// 转换后返回反向了的字符串
        }
        string back = strBuild.ToString();//将加密序列反向排序(镜像)
	
        List<string> strArr = new List<string>();
        for (int i = 0; i < str.Length; i++)
        {
            strArr.Add(str.Substring(i, 1));//传入的字符串转为数组
        }

        var newStr = "";
        for (var i = 0; i < strArr.Count; i++)
        {
            newStr += back.Substring(key.IndexOf(strArr[i]), 1);//取出原字母数字[镜像位置]的字母数字
        }
        return newStr;
    }

镜像加密解密,加密和解密是同一个函数!,支持html前端(javascript)与C#后台之间相互加解密。
目前仅适合数字加字母的组合加密,写着玩的,欢迎来喷!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值