Java将Base64转换为十六进制字符串 [英] Java convert Base64 to Hex String

查看:324
本文介绍了Java将Base64转换为十六进制字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个Base64字符串YxRfXk827kPgkmMUX15PNg== 我想将其转换为63145F5E4F36EE43E09263145F5E4F36

I have one Base64 String YxRfXk827kPgkmMUX15PNg== I want to convert it into 63145F5E4F36EE43E09263145F5E4F36

所以我认为情况会像这样 我必须先解码Base64字符串,然后将其转换为十六进制

So I think scenario would be like this I have to first decode Base64 string and than convert it into Hex

我的代码在下面给出

import org.apache.commons.codec.binary.Base64;

String guid = "YxRfXk827kPgkmMUX15PNg==";
byte[] decoded = Base64.decodeBase64(guid);
try {
    System.out.println(new String(decoded, "UTF-8") + "\n");
} catch (UnsupportedEncodingException e1) {
    e1.printStackTrace();
}

上面的代码给出了c_^O6?C??c_^O6

但是我不知道如何将这个字符串转换成十六进制字符串.因此它给出了63145F5E4F36EE43E09263145F5E4F36输出.

But I don't know How to convert this string into Hex string. So it gives the 63145F5E4F36EE43E09263145F5E4F36 output.

所以请帮助我解决此问题.

So please help me to fix this issue.

推荐答案

由于您已经在使用Apache Common Codec:

Since you are already using Apache Common Codec:

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

使用标准Java库:

String guid = "YxRfXk827kPgkmMUX15PNg==";
byte[] decoded = Base64.getDecoder().decode(guid);
System.out.println(String.format("%040x", new BigInteger(1, decoded)));

这篇关于Java将Base64转换为十六进制字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆