C#简单加密

时间:2010-02-11 17:37:34

标签: c# encryption

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

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

5 个答案:

答案 0 :(得分:4)

您是否正在尝试使用凯撒密码? (即取出每个字母并将其移动一定数量的字母向左或向右?)

如果是这样,您将需要使用字符串上的单个字符。有一个允许这样的数据类型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);
}

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

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

答案 1 :(得分:2)

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

System.Security.Cryptography Namespace

也可以使用Cryptography Application Block

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

答案 2 :(得分:0)

(char)('n' + 3)之类的东西可以为你提供你正在寻找的角色,然后你可以再次将它转换为数字。

答案 3 :(得分:0)

您所看到的是Caesar cipher

  

在密码学中,也是凯撒密码   被称为凯撒的密码,转变   密码,凯撒的代码或凯撒的转变,   是最简单和最广泛的之一   已知的加密技术。它是一个   替换密码的类型   明文中的每个字母都是   用一个固定数字的字母代替   在字母表中的位置。对于   例如,A的移位为3   由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);
}

另一个简单的选择是

Simple XOR Encryption

  

这意味着你只需要   一种方法,“EncryptDecrypt”。通过一个   串入其中并将其取回   加密。传递加密的字符串   进入它,你得到原来的   文本,只要XOR字符是   同样的。

答案 4 :(得分:0)

如果您不想尝试使用自己的加密,则框架内置了加密功能。有关详细信息,请参阅此article

编辑:固定链接