如何将两个string 进行^异或运算 (急)

lsm1011 2007-03-15 10:42:08
如题:
如何将两个string 进行^异或运算

string SChar="00DE006723AF45DF";
string SKey="1011";

怎样将SChar 与SKey进行异或;

请各位帮忙一解!
...全文
716 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
li_oxen 2007-03-16
  • 打赏
  • 举报
回复
d
Red_angelX 2007-03-16
  • 打赏
  • 举报
回复
你要什么样的结果! 位数都不一样
王集鹄 2007-03-16
  • 打赏
  • 举报
回复
汗。。。你想转出来是啥?

除非在用16进制或者base64等明文编码再处理一次
lsm1011 2007-03-16
  • 打赏
  • 举报
回复
zswang(伴水清清)(专家门诊清洁工)

你的函数StringXor转出来的串是乱码!此路不通
lsm1011 2007-03-16
  • 打赏
  • 举报
回复
位数是不是一样不是关键,关键是能进行加密,且加密后的字符集是可读写的!
lsm1011 2007-03-16
  • 打赏
  • 举报
回复
搞定了! Snowdust(雪尘) 的思路是对的!

string SChar = "00DE006723AF45DF";
string SKey = "1011";
long l1 = Convert.ToInt64(SChar, 16);
long l2 = Convert.ToInt64(SKey, 16);
long result = l1 ^ l2;

谢谢!
星际后马上给分啊
王集鹄 2007-03-15
  • 打赏
  • 举报
回复
private string StringXor(string Str, string Key)
{
int vKeyLen = Key.Length;
char[] StrChars = Str.ToCharArray();
char[] KeyChars = Key.ToCharArray();
int j = 0;
for (int i = 0; i < Str.Length; i++)
StrChars[i] ^= KeyChars[j++ % Key.Length];
return new string(StrChars);
}

private void button1_Click(object sender, EventArgs ce)
{
Text = StringXor(StringXor("Zswang 路过", "03-15"), "03-15");
}
Snowdust 2007-03-15
  • 打赏
  • 举报
回复
如果SKey是二进制的话要将
long l2 = Convert.ToInt64(SKey, 16);
中的16改成2。
Snowdust 2007-03-15
  • 打赏
  • 举报
回复
string SChar = "00DE006723AF45DF";
string SKey = "1011";
long l1 = Convert.ToInt64(SChar, 16);
long l2 = Convert.ToInt64(SKey, 16);
long result = l1 ^ l2;
sunrobust 2007-03-15
  • 打赏
  • 举报
回复
直接是不行的
sunrobust 2007-03-15
  • 打赏
  • 举报
回复
你想的这应该是转成二进制数值以后再与或吧?

110,571

社区成员

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

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

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