J2ME中的SMS加密/解密

时间:2012-05-22 10:47:11

标签: java-me sms encryption

我想用J2ME加密和解密SMS,我尝试了TEA算法,但它生成了一个长加密文本。 是否有其他轻量级算法生成与原始文本长度相同的加密文本?

2 个答案:

答案 0 :(得分:1)

检查流chiphers(如RC4)。那些不会增加空间需求。加密数据的长度与普通数据相同。

如果要加密7位文本消息,可以使用160个字符。然后那些没有帮助。 但是如果纯文本的最大长度是140个字节,则可以使用它们。

答案 1 :(得分:1)

流加密确实适用于此,但即使流加密也仅适用于比特。因此,您需要压缩文本以尽可能少地填充。在大多数情况下使用通货紧缩会有效,但在包含不可压缩数据的较短消息或消息上可能会失败。

另一种方法是将您的消息压缩到尽可能少的位。例如。数字0..9是ASCII 30h39h。但它们也可能以二进制形式0000存储到1001二进制文件。打包BCD是编码数字的好选择。数学专业人员会立即看到您可以使用组和部门来满足最低存储要求,但这可能会增加相当多的CPU资源(更不用说开发该解决方案的乐趣)。获得最短的二进制表示后,使用流密码进行加密。

所以现在你有了这个很好的短二进制表示。希望它适合SMS消息。如果没有,则需要对生成的二进制表示进行编码。

基本上,您需要做的是:

send = Send(EncodeBin(Encrypt(EncodeTxt(plain))))

然后

plain = DecodeTxt(Decrypt(DecodeBin(Receive(send))))

但不要让那阻止你:)