好主意使用sun.misc.BASE64Decoder / sun.misc.BASE64Encoder?

时间:2013-06-17 22:21:14

标签: java android base64

我正在使用Web服务在Android APP和SOAP Web服务之间发送数据。 这个Webservice只接受序列化对象,唯一的方法是使用:

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

此类允许在单个String中“加密”数据,反之亦然,但问题是:

1。 - 出于生产目的,是个好主意吗?

2。 - 还有其他方法可以做到这一点并且效率更高吗?

感谢所有回复和良好的编程!

2 个答案:

答案 0 :(得分:2)

这里有两个问题:

1)使用Base64编码?它增加了负载(一点点)和消息的长度(非常多)。如果您的内容具有与SOAP(v.g。< >)不能很好地融合的simbol,因为它们被编码,它们不再会造成麻烦。

我的推荐?将它用于可能包含不安全符号的小块信息(例如非消毒字符串)。如果必须传递大量数据(例如文件),请尝试使用更基本的HTTP方法而不是SOAP / JSON。

2)使用那个特定的库?正如fge所述,它引入了对VM的依赖性。如果您确定可以使用Oracle JVM,则可以下载第三方API并使用它。

答案 1 :(得分:0)

1)不,这不正确。您的程序变得不可移植,因为sun.misc包不是Java SE API的一部分,并且不保证在标准库中存在。

2)您可以使用DatatypeConverter.parseBase64Binary包中的DatatypeConverter.printBase64Binary / javax.xml.bind代替。