对字符串的加密解密

        在我们的程序设计中,我们经常要加密一些特殊的内容,今天总结了几个简答的加密方法,分享给大家!


方法一:简答的字符加减

        

    这个方法实际就是运用字符码的加减来乱序,生成一个看似无序的字符,上例子:


加密:

//加密算法
        public string StrInCoded(string str)
        {
            string s = "";
            try
            {
                for (int i = 0; i < str.Length; i++)
                {
                    s += (char)(str[i] + 8);
                }
                s=
                return s;
            }
            catch
            {
                return str;
            }
        }



解密:

//解密算法
        public string StrDeCoded(string str)
        {
            string s = "";
            try
            {
                for (int i = 0; i < str.Length; i++)
                {
                    s += (char)(str[i] - 8);
                }
                s=
                return s;
            }
            catch
            {
                return str;
            }
        }




方法二:生成纯数字的字符

        

       这个方法也很简单,我们可以利用c#封装好的进制转换来完成字符的标记和切分:


加密:

//加密算法
        public string StrEnCoded(string value)
        {
            StringBuilder sb = new StringBuilder();

            foreach (char c in value)
            {
                int cAscil = (int)c;
                sb.Append(Convert.ToString(c, 8) + "9");
            }

            return sb.ToString();
        }



说明:{Convert.ToString(c, 8) + "9"}这段代码是将C转换成8进制,再加上9这个不可能在8进制中出现的数字来分割字符

           八进制数字序列:0,1,2,3,4,5,6,7,10


     解密:


//解密算法
        public string StrDeCoded(string value)
        {
            string[] splitInt = value.Split(new char[] { '9' }, StringSplitOptions.RemoveEmptyEntries);

            var splitChars = splitInt.Select(s => Convert.ToChar(
                                              Convert.ToInt32(s, 8)
                                            ).ToString());

            return string.Join("", splitChars);
        }



说明:=>叫 lambda 运算。
          读作 “goes to” 
          就是把左边声明的变量带入到=>右边的表达式或者代码段里。


        这里我想说,重要的不是怎么实现这个过程,而是我们要想到使用!想到要加密,想到加密的好处!




评论 42
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值