对字符串进行加密 c#

huoyingrenzhe 2008-02-21 12:56:48
以i为循环变量,使用for循环语句由左至右依次将s_text的各个字符赋给ch,与s_key中对应的字符进行异或运算,并将结果添加到s_result的末尾。输出加密后的字符串。
-------------
这句不懂,不会写了,这两点给我弄蒙了。 下面是我的代码
--------------
static void Main(string[] args)
{
Int32 i;
string s_text, s_key, s_result = null;
char ch;
Console.WriteLine("Please Put Into Former String !\n");
s_text = Console.ReadLine();
Console.WriteLine("Please Put Into The Secret Key :\n");
s_key = Console.ReadLine();
if (s_text.Length != s_key.Length)
Console.WriteLine("The Length Of The Secret And Former String Must Be Equal!\n");
for (i = 0; i <= s_text.Length - 1; i++)
{
ch = s_text[i];
s_result[i] = Convert.ToInt32(s_text[i]) ^ Convert.ToInt32(s_key[i]);//应该是这里出错
}
Console.WriteLine("加密后的字符串为:\n{0}", s_result.ToString());
}
...全文
144 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sjm2003 2008-02-21
  • 打赏
  • 举报
回复
你直接把两个字符串,转换成ACSII码算了,然后再比较!
brookmill 2008-02-21
  • 打赏
  • 举报
回复
最后一行为什么要写成s_result.ToString()?
s_result不就是string吗?
brookmill 2008-02-21
  • 打赏
  • 举报
回复
差不多可以这样吧
char[] tmp = new char[100];
......
for (i = 0; i < s_text.Length; i++)
{
tmp[i] = (char)(s_text[i] ^ s_key[i]);
}
s_result = new string(tmp);

其它:如果s_text和s_key长度不同,应该让用户重新输入或者退出程序。
huoyingrenzhe 2008-02-21
  • 打赏
  • 举报
回复
自己用头顶一下

110,533

社区成员

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

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

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