2011-09-19 51 views
0

我需要關於在java中的字符串加密和解密的幫助我有字符串長度爲16我需要對它進行編碼並解碼它,但我需要編碼的字符串是字母數字和符號只有該用戶可以從手機類型和大小相同的純文本我試過Md5和DES,但MD5是隻有一種方式和DES編碼的字符串不僅字母數字和正確的符號嘗試了其他方式找不到合適的解決方案。需要關於正確的字符串加密解密的幫助

+0

http://trumpetpower.com/Papers/Crypto/Playfair –

+0

@nik:Playfair不可逆,因爲它增加了額外的字符來分解對。 – rossum

回答

0

您可以將編碼字符串的每個字符轉換爲其十六進制表示形式。在這種情況下,結果字符串將是字母數字。

+0

雅,但字符串的長度會增加?因爲已經編碼的字符串大小將很大,轉換十六進制將增加長度 –

+0

我認爲你不能將任何字符串轉換爲字母數字字符串而不增加其長度。 – Michael

+0

雅但他們的方式,我可以使用任何算法首先編碼,所以字節或長度可以壓縮並轉換爲BASE64或十六進制? –

0

Vigenère cypher可以限制爲任何所需的字符集,並具有與明文相同長度的密文。它不如現代密碼安全,但在低安全性應用中使用。一個堅定的攻擊者將能夠打破Vigenère。

+0

哼,我知道這個算法。它更可能破壞 –

+1

@ud_an:如果可以生成至少與明文一樣長的真正的隨機密鑰(**不是**僞隨機),則Vigenère可以變爲牢不可破。而且你只能使用那個鍵一次。在那些條件下Vigenère成爲一次性墊。任何微小的偏差,它都會再次破裂。 – rossum