86@86@80@8A@80@85@83@8B@ @分割符,86表示4,80表示10BEA@04A2@78A8@66CF@0AA8@78D9@ @分隔符,0BEA貌似是“广”字,04A2貌似是“东”字78A8可能是 “省”字。以为上述的是广东的身份证号码。哪位大侠,对16进制,移位,交叉啥的熟悉的,帮我把解密算法弄出来。谢谢
解决方案 »
- 用C#开发财务信息管理系统,单机版,数据库用SQL sever2005
- 如何使用IComparer来排序FileInfo[]
- 关于winforms 的richtextbox使用
- 小弟新学.net不久 看到个代码段有点不明白请高手们帮忙指点下好不
- 100求助!如何使得Button上的文字垂直显示!在线等!!!
- 请问有没有办法实现文字和图片一起上传到数据库, 显示的时候一起显示(急)
- 急!!水晶报表10部署遇到了问题,海波等高手帮帮忙吧.
- C# 算法题目,求解
- 如何判断一个程序集已被加载
- C#的内部类不能直接访问外部类的非静态成员?
- 生成程序集时无法复制项目dll到主输出目录
- 「学一学」C# 快速入门(Aisha Ikram著,野比 译)
04A2 ^ B209 = B6AB 东
78A8 ^ B209 = CAA1 省
"44282719广东省云浮市"借鉴楼上的回复,上面这串是用GB2312的编码。
const string input = @"86@86@80@8A@80@85@83@8B@0BEA@04A2@78A8@66CF@0AA8@78D9@";
var bytes = new List<byte>();foreach (var seg in input.Split('@').Where(s => !string.IsNullOrEmpty(s)))
{
switch (seg.Length)
{
case 4:
var word = BitConverter.GetBytes((Int16) (Int16.Parse(seg, NumberStyles.HexNumber) ^ 0xB209));
bytes.Add(word[1]);
bytes.Add(word[0]);
break; case 2:
bytes.Add((byte) (byte.Parse(seg, NumberStyles.HexNumber) ^ 0xB2));
break; default:
break;
}
}var text = Encoding.GetEncoding("gb2312").GetString(bytes.ToArray());