【问题标题】:Why byte array need to convert to hex decimal string after encrypting the text为什么字节数组需要在加密文本后转换为十六进制十进制字符串
【发布时间】:2014-11-19 05:07:00
【问题描述】:

我看过一些关于加密的例子。几乎在所有例子中得到摘要消息后,我们得到的是字节数组。之后它们被转换为十六进制十进制字符串。是否必须转换为十六进制十进制字符串。或者是还有其他方法吗?

提前谢谢...

【问题讨论】:

    标签: java cryptography bytearray hex


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      然后是网络使用,您经常会看到它们也使用 base64 编码以确保长度恒定

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-06-17
        • 2017-08-23
        • 1970-01-01
        • 1970-01-01
        • 2019-07-27
        • 1970-01-01
        • 2021-10-31
        相关资源
        最近更新 更多