我想用J2ME加密和解密SMS,我尝试了TEA
算法,但它生成了一个长加密文本。
是否有其他轻量级算法生成与原始文本长度相同的加密文本?
答案 0 :(得分:1)
检查流chiphers(如RC4)。那些不会增加空间需求。加密数据的长度与普通数据相同。
如果要加密7位文本消息,可以使用160个字符。然后那些没有帮助。 但是如果纯文本的最大长度是140个字节,则可以使用它们。
答案 1 :(得分:1)
流加密确实适用于此,但即使流加密也仅适用于比特。因此,您需要压缩文本以尽可能少地填充。在大多数情况下使用通货紧缩会有效,但在包含不可压缩数据的较短消息或消息上可能会失败。
另一种方法是将您的消息压缩到尽可能少的位。例如。数字0..9是ASCII 30h
到39h
。但它们也可能以二进制形式0000
存储到1001
二进制文件。打包BCD是编码数字的好选择。数学专业人员会立即看到您可以使用组和部门来满足最低存储要求,但这可能会增加相当多的CPU资源(更不用说开发该解决方案的乐趣)。获得最短的二进制表示后,使用流密码进行加密。
所以现在你有了这个很好的短二进制表示。希望它适合SMS消息。如果没有,则需要对生成的二进制表示进行编码。
基本上,您需要做的是:
send = Send(EncodeBin(Encrypt(EncodeTxt(plain))))
然后
plain = DecodeTxt(Decrypt(DecodeBin(Receive(send))))
但不要让那阻止你:)