2010-02-11 68 views
1

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

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

+0

你能更具体吗? –

+0

是的,它是我以后的凯撒密码。对于模糊的问题抱歉! – Ripper

回答

0

(char)('n' + 3)东西可以给你,你正在寻找的字符,然后你可以再次将其转换为数字,只要你喜欢..

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); 
} 

有一点要记住的是,你需要,如果他们走过去的字母结束“包装”你的角色。我会把这作为挑战留给你。 :)

请记住,虽然这是一种有趣的学习语言的方式,但它在现实世界中对于加密并不有用,并且极易被破坏。

2

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

System.Security.Cryptography Namespace

也可以使用Cryptography Application Block

也许使用这些比你更需要的,但使用内置的框架,以满足你的目标可以帮助教你的.NET Framework和C#为好。

0

你所看到的是一个Caesar cipher

在密码学中,恺撒密码,也 被称为凯撒的密码,移位 密码,凯撒的代码或撒转变, 是最简单的一个和最广泛的已知加密技术。它是一种 类型的替代密码,其中 明文中的每个字母都是 ,由字母表中某个固定数字 的字母替换。例如,对于 的例子,随着3的移位,A将 替换为D,B将变为E,并且 等等。该方法以 Julius Caesar的名字命名,他使用它来与 沟通。

这是开始学习的好方法,但请仔细阅读章节上打破密码

你可以尝试像

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

这意味着你只需要 一种方法,“加密解密”。将一个 字符串传入并将其加密 。将加密后的字符串 传入并将其取回原来的 文字,只要与异或字符 相同即可。

0

如果您不是试图推出自己的加密,该框架内置了加密功能。有关详细信息,请参阅此article

编辑:固定链接