为什么在加密文本后字节数组需要转换为十六进制十进制字符串

时间:2014-11-19 05:07:01

标签: java cryptography bytearray hex

我已经看到了一些关于加密的例子。在获取摘要消息之后的所有例子中,我们得到了字节数组。之后它们转换为十六进制十进制字符串。是否必须转换为十六进制十进制字符串。或者是还有别的办法吗?

提前致谢...

2 个答案:

答案 0 :(得分:1)

作为原始binary data传递的数据在传输过程中很容易被破坏,并且不同的系统可能会将二进制数据中的某些字节解释为具有意外结果的控制字符。

您应始终使用base64hexadecimal encoding对密文数据进行编码。生成的文本可以轻松传输而不会损失完整性,然后可以在解密之前在目标系统上解码回二进制文件。

One byte is an 8-bit value,可以在hexadecimal中表示。字节数组是一系列十六进制值。

答案 1 :(得分:0)

不太确定你的意思,byte []以及hex或甚至简单的字符串转换都只是一些有用的摘要表示,具体取决于所使用的上下文。如果你想让它易于在GUI /浏览器中使用,即人类使用,byte []不会工作,所以下一个更紧凑的形式是十六​​进制,因为4bytes一个char。所以它非常紧凑,易于使用。

然后有网络使用,你经常看到它们base64编码,以确保恒定的长度