方法一:简答的字符加减
这个方法实际就是运用字符码的加减来乱序,生成一个看似无序的字符,上例子:
加密:
- <SPAN style="FONT-SIZE: 18px">
- 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;
- }
- }
- </SPAN>
//加密算法
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;
}
}
解密:
- <SPAN style="FONT-SIZE: 18px">
- 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;
- }
- }
- </SPAN>
//解密算法
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#封装好的进制转换来完成字符的标记和切分:
加密:
- <SPAN style="FONT-SIZE: 18px">
- 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();
- }</SPAN>
//加密算法
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
解密:
- <SPAN style="FONT-SIZE: 18px">
- 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);
- }</SPAN>
//解密算法
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”
就是把左边声明的变量带入到=>右边的表达式或者代码段里。
这里我想说,重要的不是怎么实现这个过程,而是我们要想到使用!想到要加密,想到加密的好处!
上一篇:iOS安全objective-CHack实战——探究支付宝app手势密码 下一篇:read 命令