本文介绍了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 thisI 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转换为十六进制字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!