c#字符串加密解密 本帖最后由 qinzugan 于 2010-12-01 18:29:49 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 去看我的帖子,有你需要的方法,在这里http://topic.csdn.net/u/20101201/19/fbb18e53-295e-4766-a194-265ec879a4ce.html 你试下看效果:static void Main(string[] args) { byte[] Bytes1 = System.Text.Encoding.Default.GetBytes("12ABCD"); Console.WriteLine("加密前 明文 是={0}", "12ABCD"); string Temp0 = ""; string r1 = ""; int y = 1; foreach (byte b in Bytes1) { Temp0 += ((uint)b + (uint)(y)).ToString("X"); //X表示十六进制显示 // Console.WriteLine(Convert.ToChar((uint)b + (uint)(y))); //你要的加密字符串 r1 += Convert.ToChar((uint)b + (uint)(y)).ToString(); y += 1; } Console.WriteLine("加密后十六进制字符串={0}",Temp0); Console.WriteLine("加密后(char类型)密文是={0}", r1); byte[] byter0 = new byte[r1.Length]; for (int i = 0; i < r1.Length; i++) { uint tem = Convert.ToUInt32(Convert.ToChar(r1.Substring(i, 1))) - (uint)(i + 1); byter0[i] = Convert.ToByte(tem); } Console.WriteLine("解密后(string) 字符串={0}",System.Text.Encoding.Default.GetString(byter0)); Console.ReadKey(); } string s = "123456";//原文string key = "123456";//keystring result = "";for (int i = 0; i < s.Length; i++){ result += (int.Parse(s[i].ToString(), System.Globalization.NumberStyles.HexNumber) + int.Parse(key[i % key.Length].ToString(), System.Globalization.NumberStyles.HexNumber)).ToString("X");}//result就是你要的结果 如果做产品,最好不要自己发明什么加密解密算法。看看关于安全方面的资料吧,什么叫做加密,许多自创的加密方法可以被一些人几分钟就发现毛病。使用.net库中封装的现成的、科学的加密解密算法。 发一个有点让人 XX 的小小问题。 DLL在C#调用的问题 怎样判断一个数n是质数(素数)还是和数? gridview显示问题 有关SQL查询 急 ~~急··在线等。 谁能说说委托数组和事件有啥区别啊?? 如何通过编码从数据库生成XSD 大家认为C#.NET 方向好还是J2EE方向好啊??????????????? 工具栏可以映射到菜单吗? 我先装了个vs2005,然后又装了个vs2003 请问这样装的顺序行吗,需要注意什么啊? Log4Net对同一文件写入时的问题 推荐文件数据读取的教程资料
http://topic.csdn.net/u/20101201/19/fbb18e53-295e-4766-a194-265ec879a4ce.html
static void Main(string[] args)
{
byte[] Bytes1 = System.Text.Encoding.Default.GetBytes("12ABCD");
Console.WriteLine("加密前 明文 是={0}", "12ABCD");
string Temp0 = "";
string r1 = "";
int y = 1;
foreach (byte b in Bytes1)
{
Temp0 += ((uint)b + (uint)(y)).ToString("X"); //X表示十六进制显示
// Console.WriteLine(Convert.ToChar((uint)b + (uint)(y))); //你要的加密字符串
r1 += Convert.ToChar((uint)b + (uint)(y)).ToString();
y += 1;
}
Console.WriteLine("加密后十六进制字符串={0}",Temp0);
Console.WriteLine("加密后(char类型)密文是={0}", r1); byte[] byter0 = new byte[r1.Length];
for (int i = 0; i < r1.Length; i++)
{
uint tem = Convert.ToUInt32(Convert.ToChar(r1.Substring(i, 1))) - (uint)(i + 1);
byter0[i] = Convert.ToByte(tem);
}
Console.WriteLine("解密后(string) 字符串={0}",System.Text.Encoding.Default.GetString(byter0));
Console.ReadKey();
}
string key = "123456";//key
string result = "";
for (int i = 0; i < s.Length; i++)
{
result += (int.Parse(s[i].ToString(), System.Globalization.NumberStyles.HexNumber) + int.Parse(key[i % key.Length].ToString(), System.Globalization.NumberStyles.HexNumber)).ToString("X");
}
//result就是你要的结果