C#简单加密

嗨’我正在学习C#(作为业余爱好者),并试图想出如何编写一个简单的加密程序。

从ASCII转换字符很好,得到了排序,但它是我坚持的转变。 例如,如果我想编码(n + 3),我应该遵循什么样的思路?

你想尝试做凯撒密码吗? (即把每一个字母移到左边或右边一定数量的字母?)

如果是这样,您将需要使用字符串上的单个字符。 有一个数据类型char允许这个,你可以做算术运算。 要从字符串中获取字符数组,请调用(string).ToCharArray()。 然后你可以遍历角色并移动每个角色。

char key = (char)3; string toEncrypt = "abcdef"; char[] cArray = toEncrypt.ToCharArray(); for (var i = 0; i < cArray.Length; i++) { cArray[i] = (char)(cArray[i] + key); } 

要记住的一件事是,如果字符超过字母表的末尾,则需要“包裹”它们。 我会把这作为挑战给你。 🙂

请记住,虽然这是一种学习语言的有趣方式,但它在现实世界中对加密没有用,而且非常容易破解。

.net框架内置了大量加密选项。 既然你正在徘徊,也许你想手工完成,但你的测试程序可以简单地使用框架。

System.Security.Cryptography命名空间

也可以使用Cryptography Application Block

也许使用这些比你需要的更多,但使用内置框架来实现你的目标可能有助于教你.net框架和c#。

(char)('n' + 3)可以给你你正在寻找的角色然后你可以再次将它转换为数字,如你所愿..

如果您不想尝试自己的加密,框架内置了加密function。有关详细信息,请参阅此文章 。

编辑:固定链接

你在看什么是凯撒密码

在密码学中,凯撒密码(也称为凯撒密码),移位密码,凯撒代码或凯撒变换,是最简单和最广为人知的加密技术之一。 它是一种替换密码,其中明文中的每个字母都被字母表中的一些固定数量的位置的字母替换。 例如,如果移位为3,则A将替换为D,B将替换为E,依此类推。 该方法以朱利叶斯·凯撒命名,后者用它与将军交流。

这是开始学习的好方法,但请阅读破解密码部分

你可以试试像

 string val = "abc"; string encrypt = ""; for (int iChar = 0; iChar < val.Length; iChar++) { encrypt += (char)(val[iChar] + 3); } string decrypt = ""; for (int iChar = 0; iChar < encrypt.Length; iChar++) { decrypt += (char)(encrypt[iChar] - 3); } 

另一个简单的选择是

简单的XOR加密

这意味着您只需要一种方法“EncryptDecrypt”。 将字符串传入其中并将其重新加密。 将加密的字符串传递给它,只要XOR字符相同,就会返回原始文本。