【发布时间】:2016-07-19 02:13:18
【问题描述】:
我正在尝试对十六进制字符串进行 base-64 编码(复制如下),但我从 Java8 调用中获得的编码为 base64 的值与我在不同的在线转换器上获得的值不匹配。我想弄清楚我错过了哪些步骤(或我正在采取的失误):
//hexString is 07050600030102
Base64.getEncoder().encodeToString(hexString.getBytes(StandardCharsets.UTF_8));
//output I am getting from Java8 ic copied below:
MDcwNTA2MDAwMzAxMDI=
//online converters:
BwUGAAMBAg==
【问题讨论】:
-
它将字符数据(不是数值)编码为base64。如果你想要十六进制值,你需要先将其解析为数字。
-
大多数情况下,您需要解码十六进制并对解码后的内容进行编码,而不是按原样将其编码为 base64。