好的,这很简单。所有我必须做的是十六进制解码为字节[]数组,然后使用Apache Commons Codec Java library 这是代码
String hexToConvert = "446a1837e14bfec34a9q0141a55ec020f73e15f4";
byte[] hexData = hexStringToByteArray(hexToConvert);
Base32 base32 = new Base32();
String encodeBase32 = base32.encodeAsString(hexData);
System.out.println("Base 32 String: " + encodeBase32);
辅助函数它编码成Base32:这是从Convert a string representation of a hex dump to a byte array using Java?
public static byte[] hexStringToByteArray(String s) {
int len = s.length();
byte[] data = new byte[len/2];
for (int i = 0; i < len; i += 2) {
data[i/2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
+ Character.digit(s.charAt(i+1), 16));
}
return data;
}
我第一需要解码十六进制,然后将其转换为基地32? – user2013919
我需要将Hex转换为Base32,而不仅仅是将一个字符串编码为Base32。谢谢 – user2013919
最简单的方法。否则,你应该自己实现算法 – xenteros