BouncyCastle和Apache Commons Codec Base64编码之间的区别

时间:2014-08-12 10:12:59

标签: java base64 bouncycastle apache-commons-codec

我想知道BouncyCastle提供的Base64编码机制和Apache Commons Codec提供的等效机制是否完全兼容,或者是否存在兼容性问题。

我正在开发一个Java库,它在一些输入和输出上使用Base64编码(它必须对一些输入进行编码,并对其部分输出进行编码)。该库使用Bouncy Castle的Base64编码器。

将使用此库的其中一个应用程序将使用Apache commons的Base64编码器来执行编码和解码。

我认为Apache的实现遵循RTC标准,但是Bouncy Castle的实现并不遵循这个标准,尽管它基本上遵循相同的标准。这些组件之间是否存在兼容性问题?

仅在需要相互通信的组件中使用相同的Base64编码器是明智的吗?

1 个答案:

答案 0 :(得分:3)

  

仅在组件中使用相同的Base64编码器是明智的吗?   那需要彼此沟通?

简而言之,两个通信组件中的Base64应相同

<强>释

Base64内容传输编码是任何8-bit字节序列组合的描述形式,此形式无法直接识别。该算法主要给出字符编码(如ASCII码,UTF-8码)对应的十进制数作为参考,做编码操作。

由于Sun本身不提供Base64算法,因此用户必须使用其中一个开源实现,例如Commons CodecBouncy Castle等。

Bouncy Castle&amp;的算法之间的差异Apache Commons Bouncy Castlehash解释为一系列 hexadecimal 值,而Apache Commonshash解释为string在base64编码之前 shorter 。在前一种情况下,结果编码比原始字符串longer,而在后一种情况下,结果编码比原始字符串{{1}}。

因此,在通信组件之间应该使用相同的 Base64编码器。

希望这会对你有所帮助。