2011-09-19 48 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