c#字符串加密解密

qinzugan 2010-12-01 06:22:54
一个6位数字符串,如12ABCD,进行加密,加密原则如下:
1,把12ABCD这六个字符转换成32进制行依次+123456,然后转换成16进制
For example:
1 2 3 4 5 6
+ + + + + +
1 2 3 4 5 6

=2 4 6 8 A C
请问有什么办法还原成原来的字符串,注意转成32进制后16~21之间的数,因为超过16就不能转16进制了,这就是解密的原则,能给我实际代码正确的我把分都给他。
...全文
258 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ExcelWord 2010-12-02
  • 打赏
  • 举报
回复
你试下看效果:
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();
}
LutzMark 2010-12-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wuyazhe 的回复:]
估计是作业◎﹏◎
[/Quote]
确实像
兔子-顾问 2010-12-02
  • 打赏
  • 举报
回复
估计是作业◎﹏◎
兔子-顾问 2010-12-02
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 excelword 的回复:]
也许楼主是作业,不然做产品加密不会这样简单的!
[/Quote]
置换加密也是加密方法,但这直接相加,是会溢出的,不稳定,数据溢出时不可还原是关键。
ExcelWord 2010-12-02
  • 打赏
  • 举报
回复
也许楼主是作业,不然做产品加密不会这样简单的!
  • 打赏
  • 举报
回复
如果做产品,最好不要自己发明什么加密解密算法。看看关于安全方面的资料吧,什么叫做加密,许多自创的加密方法可以被一些人几分钟就发现毛病。使用.net库中封装的现成的、科学的加密解密算法。
兔子-顾问 2010-12-02
  • 打赏
  • 举报
回复
string s = "123456";//原文
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就是你要的结果
liubococoa 2010-12-02
  • 打赏
  • 举报
回复
脚印,备查
scwyyg 2010-12-02
  • 打赏
  • 举报
回复
一楼的对加密程序比较了解,向你学习!
koko0123 2010-12-01
  • 打赏
  • 举报
回复
看下一楼
ExcelWord 2010-12-01
  • 打赏
  • 举报
回复
去看我的帖子,有你需要的方法,在这里
http://topic.csdn.net/u/20101201/19/fbb18e53-295e-4766-a194-265ec879a4ce.html

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧