gpt4 book ai didi

Java 将 Base 64 值转换为十六进制

转载 作者:行者123 更新时间:2023-12-02 09:18:31 24 4
gpt4 key购买 nike

我使用下面的 Scala 代码生成了 Base64 编码值:

println(Base64.getEncoder.encodeToString("E5E9FA1BA31ECD1AE84F75CAAA474F3A".getBytes(StandardCharsets.UTF_8)))
YxRfXk827kPgkmMUX15PNg==

现在我正在尝试将“YxRfXk827kPgkmMUX15PNg==”转换为十六进制。我尝试使用下面的 Java 代码,但没有成功:

public static void main(String[] args) throws DecoderException {
String guid = "RTVFOUZBMUJBMzFFQ0QxQUU4NEY3NUNBQUE0NzRGM0E=";
byte[] hexString = Hex.decodeHex(guid);
System.out.println(hexString);

Exception in thread "main" org.apache.commons.codec.DecoderException: Illegal hexadecimal character R at index 0

当我探索时,我发现了以下有效的 Java 代码:

String guid = "YxRfXk827kPgkmMUX15PNg==";
byte[] decoded = Base64.decodeBase64(guid);
String hexString = Hex.encodeHexString(decoded);
System.out.println(hexString);

4535453946413142413331454344314145383446373543414141343734463341

但是这里 Base64 值被解码,然后转换为十六进制。我想知道是否有一种方法可以直接将 Base64 转换为 Hex?请原谅,因为它看起来像一个重复的问题,并提前致谢。

最佳答案

由于它是一个String,它已经有办法获取ByteArray。不要解码 Base64,只需从 String 请求字节:

public static void main(String[] args) {
String guid = "YxRfXk827kPgkmMUX15PNg==";
String hexString = Hex.encodeHexString(guid.getBytes());
System.out.println(hexString);
}
<小时/>

这基本上意味着您只需将字符串转换为 Byte[]

通过测试解码,可以看到业务逻辑代码非常简单,原始文本和十六进制编码是相同的:

// actual business logic
public String hexEncoder(String content) {
return Hex.encodeHexString(content.getBytes());
}

// input and assertion
@Test
public void hexEncoder() throws DecoderException {
String guid = "YxRfXk827kPgkmMUX15PNg==";

String hexString = hexEncoder(guid);
String hexDecoded = new String(Hex.decodeHex(hexString));

// no need to decode Base64 but might be useful for `printLn` or debugging
String s = new String(Base64.decodeBase64(guid));
String s1 = new String(Base64.decodeBase64(hexDecoded));

assertEquals(s, s1);
}

关于Java 将 Base 64 值转换为十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58850264/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com