2012-08-30 51 views
2

我正在嘗試使用python構建加密系統。它基於第二次世界大戰期間德國使用的洛倫茨密碼機,雖然比原來的5位和12轉子更復雜(7位ASCII加密和30個轉子)。Python' x0e'按字符XOR加密

到目前爲止,我已經制定並編寫了步進系統。我還創建了一個用於切割明文的系統。但檢查輸出,在字符的字符(由不拼接在一起的密文),當我得到這個對你好:

['H', 'Z', '\x0e', '>', 'f'] 

我已經意識到,'\x0e'必須是ASCII一些特殊字符,但我可以肯定的是,當該程序去解密它將單獨查看其中的每個字母。有人可以告訴我什麼'\x0e'表示,如果有其他這樣的字符,並且有一個簡單的方法來解決它。

在此先感謝!

+2

我希望你知道字節編碼方案,字符,字形之間的關係和區別的,你的屏幕上的像素,等等,但你的問題看起來像你不是。對於初學者,請閱讀[絕對最小每個軟件開發人員,肯定必須知道Unicode和字符集(無藉口!)](http://www.joelonsoftware.com/articles/Unicode.html)。 – delnan

+0

多麼有趣的項目!你是否也打算製作解密軟件?當你完成後,這個項目會在GitHub上(或其他)? – theJollySin

+0

是的,現在剛剛完成,至少在裸機算法上。由於機器屬於具有僞隨機位發生器的XOR密碼,加密和解密使用相同密鑰的相同算法。我會嘗試在某些時候上傳源代碼。以下是Lorenz機器的維基百科頁面,它以非常相似的方式工作,但是要複雜得多:[link](http://en.wikipedia.org/wiki/Lorenz_cipher) – Xandros

回答

2

'\x0e'是ASCII SO(移出)不可打印的字符。這是一個單一的字符,任何處理字符串的合理程序都會這樣對待它;你只能看到它是這樣表示的,因爲你是一個列表,其中顯示了列表中每個值的repr

至於是否有其他問題,是的,其中有33個; ASCII 0-31和127通常都被認爲是「控制字符」,通常不能打印。

2

這是ASCII「移出」控制字符,不可打印。

控制字符與SHIFT IN和 一起使用ESCAPE擴展代碼的圖形字符集。它可能會改變八位組33-126(十進制)的含義。這個字符使用代碼擴展技術時 的影響在國際 標準ISO描述2022