加密期间消息填充不清晰

时间:2019-08-28 09:20:39

标签: java encoding

我正在查看一些应该处理加密的代码,但发现了我不理解的步骤:

StringBuilder encryptedPaddedMessage = new StringBuilder(encryptedMessage.length * 2);
    for (int i = 0; i < encryptedMessage.length; i++) {
        if (((int) encryptedMessage[i] & 0xff) < 0x10) {
            encryptedPaddedMessage.append("0");
        }

        encryptedPaddedMessage.append(Long.toString((int) encryptedMessage[i] & 0xff, 16));
}

任何人都可以解释这段代码的目的吗?

谢谢

1 个答案:

答案 0 :(得分:1)

当每个字节的十六进制输出小于0(并且是一个十六进制数字)时,它将在每个字节的十六进制输出中添加前导0x10

它可以被重写:

encryptedPaddedMessage.append(String.format("%02x", encryptedMessage[i] & 0xff));

请注意,它并不是真正的“加密”,而是“编码”为十六进制字符串。