对字符串的加密解密

来源:互联网 发布:希拉里邮件门内容 知乎 编辑:程序博客网 时间:2024/04/29 20:10

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


方法一:简答的字符加减

        

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


加密:

//加密算法        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” 
          就是把左边声明的变量带入到=>右边的表达式或者代码段里。


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




6 1
原创粉丝点击