将java String转换为7位字符串

时间:2012-05-11 05:06:07

标签: java android string sms

我正在加密字符串说“你好,你好” 使用加密算法并将加密的字符串作为b�*-ت5Tr���6=

这个字符串我们不能作为短信发送 所以我想通过将其转换为7位来转换为sms支持的格式 在接收方,我们必须转换回8位并解密 我怎样才能实现这一目标?

注意:我已经使用Base64转换为sms支持的格式,但长度正在增加。 所以我不能发送更多的角色

1 个答案:

答案 0 :(得分:0)

我假设你的问题是这样的:

  

如何在不增加消息大小的情况下将二进制数据作为有效的SMS文本传输?

答案是 - 你不能 - 至少不是100%确定。

您的加密算法可能会创建一些字节数组(byte[]),一旦您 Base64 对其进行编码,它将增长约33%(如上述评论中所述)。

我看到的唯一选择是尝试在加密之前或之后压缩信息 - 取决于您选择的压缩算法 - 然后 Base64 对其进行编码。这将为您提供更大的机会来限制大小 - 但没有任何确定性。 (除非你发现压缩算法承诺每次输入压缩超过33%。

另一种方法是跨越两条SMS消息传递消息 - 假设您被允许这样做。