加密期间消息填充不明确



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

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));
}

谁能解释一下这段代码的目的是什么?

谢谢

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

可以重写:

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

请注意,它不是真正的"加密",而是"编码"成十六进制字符串。

最新更新