嗨,我正在學習C#(作爲一個業餘愛好者),並且正在努力想象如何編寫一個簡單的加密程序。C#簡單加密
從ASCII轉換字符是好的,得到了排序,但它是我卡住的轉變。例如,如果我想爲(n + 3)編碼,我應該遵循什麼思路?
嗨,我正在學習C#(作爲一個業餘愛好者),並且正在努力想象如何編寫一個簡單的加密程序。C#簡單加密
從ASCII轉換字符是好的,得到了排序,但它是我卡住的轉變。例如,如果我想爲(n + 3)編碼,我應該遵循什麼思路?
像(char)('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 Namespace
也可以使用Cryptography Application Block
也許使用這些比你更需要的,但使用內置的框架,以滿足你的目標可以幫助教你的.NET Framework和C#爲好。
你所看到的是一個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);
}
另一種簡單的選擇權,以看起來是
這意味着你只需要 一種方法,「加密解密」。將一個 字符串傳入並將其加密 。將加密後的字符串 傳入並將其取回原來的 文字,只要與異或字符 相同即可。
如果您不是試圖推出自己的加密,該框架內置了加密功能。有關詳細信息,請參閱此article。
編輯:固定鏈接
你能更具體嗎? –
是的,它是我以後的凱撒密碼。對於模糊的問題抱歉! – Ripper