【发布时间】:2012-05-11 05:06:06
【问题描述】:
我正在加密一个字符串说“hello h r u”
使用加密算法,得到加密后的String为b�*-ت5Tr���6=
这个字符串我们不能作为短信发送
所以我想通过将其转换为 7 位来转换为支持短信的格式。
在接收端,我们必须转换回 8 位并解密。
我怎样才能做到这一点?
注意:我已经使用 Base64 转换为支持短信的格式,但长度正在增加。 所以我无法发送更多字符
【问题讨论】:
-
你问'我怎样才能做到这一点' - 然后你说你已经成功地对它进行了 base 64 编码。所以你已经解决了你的问题,是吗?您唯一的问题是由于 base 64 编码而导致大小增加吗?
-
是的,我希望尺寸不要增加太多
-
Base 64 encoding has roughly a 33% overhead - 您正在尝试对相同的数据进行编码,但信息密度较低。你逃不掉的。你的实际问题是什么?
-
我希望大小不会增加太多,而且字符串必须是支持短信的格式,我们可以将 8 位更改为 7 位并发送。如果可以的话,有没有可能怎么做
-
Greg -> 因为 sms 是 7 位,所以它会匹配 base128。如果 sms 7 位和 base128 不使用相同的字符,只需更改 base128 实现中使用的字母并制作他自己的 base128 版本