Q
替代算法
2
A
回答
0
其實ROT13是一個Caesar cipher變體,其想法是N個位置進一步字母表中的轉向純文本的信件。 ROT13或Caesar密碼都不安全。爲什麼?
基本上可以將加密強度定義爲打破給定加密文本所需的工作量。那麼我們應該怎麼做才能打破這些? :
- ROT13 - >我們簡單地將每個字符向後移動13個字母位置。 (根本沒有安全性)。
- 凱撒密碼 - >
for N=1 to 26 do:
shift each character by N positions back in the alphabet.
If a lot of common English words (the, and, that,...) - encryption is cracked.
在凱撒情況下
所以還是26次迭代破解加密的文字是如此之小數目,我們可以有把握地宣稱凱撒密碼沒有安全也。 (但它當然比ROT13好一點)。
如果你想要一個更有用的替代密碼 - 然後使用Vigenere cipher。與ROT13/Caesar密碼相反 - Vigenere密碼在加密操作中不使用FIXED字母。 (它通過按需要的順序切換使用多個字母)。這就是爲什麼Vigenere比ROT13/Caesar更安全的原因。仍然Vigenere是弱加密和可比XOR encryption。爲什麼Vigenere軟弱?基本上,因爲它容易受到Frequency analysis(當然首先需要猜測/找到密鑰長度)。 這裏是vigenere C# code(與凱撒/ ROT13一起)。
祝你好運!
2
StringBuilder encryptedBuilder = new Stringbuilder();
for(int i = 0; i < key.Length; i++) {
char e = getCharFor(key[i]); // this does substitution - implement this
encryptedBuilder.Append(e);
}
string encryptedString = encryptedBuilder.ToString();
相關問題
- 1. 替代std :: inner_product算法?
- 2. 解決方案的C++替代算法
- 3. Neurolab中的Levenberg-Marquardt算法替代
- 4. java替代備份旋轉算法
- 5. 遺傳算法和替代密碼
- 6. 高效算法代替循環
- 7. 替代調度程序/算法
- 8. 替換算法
- 9. 關於計算機科學算法eulerproject.net的替代
- 10. Modulo運算符的替代
- 11. 替代運算符重載
- 12. 替代三元運算符
- 13. 計算器形式替代
- 14. 替代方法
- 15. 替代方法
- 16. C++列表迭代算法替換的想法
- 17. 最近鄰算法中距離度量的替代方法?
- 18. 爲棒替代做法切割算法(遞歸)
- 19. 高斯消元變換和征服算法的替代方法
- 20. 無法用Java替換方法代替
- 21. 替代socket.accept()方法
- 22. Thread.sleep()方法替代
- 23. Strstr替代方法
- 24. sqlceengine.compact方法替代
- 25. 替代方法.hasNextInt?
- 26. 替代方法V3
- 27. 無法替代[以{
- 28. 替代arcTo方法?
- 29. 替代方法creationcomplete
- 30. 緩存項替換算法
您是指替代密碼?你可以使用[ROT13](http://www.dotnetperls.com/rot13)。我不認爲「加密」一詞準確地適用於替代密碼。 – 2011-02-24 23:13:42
我的問題的完美答案...感謝馬克... – lock 2011-02-24 23:22:25
請注意,我沒有真正測試該鏈接上的代碼(這只是第一個谷歌命中「rot13 c#」)。但只要你只處理ASCII字符,它就會「看起來」合理。 – 2011-02-24 23:26:21