2017-06-18 37 views
-2

我正在嘗試爲字符串創建一個簡單的加密方案。字符串的每個字符都被賦予另一個ascii值。簡單的字符串加密 - 更高的ascii字符的安全

它需要將最多246個ASCII字符寫入磁盤上的簡單文件。

我想知道將這些特殊字符寫入磁盤是否安全,還是會導致不良結果。謝謝你的幫助。

編輯:我正在考慮類似下面的算法:

* Convert each character of string to its integer number (hence 110 for 'n' and 122 for 'z') 
* Double that number (get 220 and 244) 
* Convert this to character (will get extended ascii codes) 
* Save these characters to file. 

它是安全的保存這些extended ascii characters使用普通的文本文件寫入功能的磁盤文件?

+1

「ascii characters up to 246」是什麼意思? –

+0

請注意,我們處於一個後置的ASCII世界中,這並不僅僅意味着其他語言,而是認爲表情符號。 – zaph

+0

@JamesKPolk和@ Zaph:請參閱上面我的問題中的編輯。 – rnso

回答

0

只有一組有限的ASCII字符。有95個可打印的字符,如'A',但也是空格字符。有33個可打印的字符,如換行,回車,NUL,但也刪除。所以你不能使用246個ASCII字符,因爲總共只有128個字符可用。 ASCII是嚴格的7位給你2^7 = 128個可能的值。

即使您使用ISO 8859拉丁字符集或Windows-1252字符集,仍然會有不可打印的控制字符進行處理,使您留下256 - 33 - 5個字符或218個字符。 Windows-1252仍然有5個未定義的字符。

你能做什麼當然是保存你的數據爲字節。每個字節有256個可能的值(通常是0到255或-128到127)。只要你打開文件爲二進制文件,這沒有問題。


,您可以根據需要在文件當然店的儘可能多的字符,直到文件系統或操作系統的限制。所以我想你沒問

+0

請參閱上面我的問題中的編輯。 – rnso

+0

我沒有看到任何理由來改變我的答案。讀取/寫入加密字節,解密爲字符並顯示。這樣你就不需要深入瞭解字符集的所有這些細節問題,這比理解破解你的加密代碼更復雜。 –

相關問題