如何将“二进制字符串”转换为base64?

时间:2011-12-04 06:26:14

标签: java binary base64

我已经遵循了这个:https://dev.twitter.com/docs/auth/creating-signature

到最后但我找不到如何将“二进制字符串”编码为base64(最后)。我想先尝试在线转换器,但他们不给字符串显示 “tnnArxj06cWHq44gCs1OSKk / jLY =”

试过这个:http://www.motobit.com/util/base64-decoder-encoder.asp

http://www.hash-cracker.com/base64.php#anchor

http://www.opinionatedgeek.com/dotnet/tools/Base64Encode/

并且没有给出该字符串。

我将使用java。但我认为我搜索的所有Java工具都会得到与在线转换器相同的结果。要将“二进制字符串”编码为base64需要做些什么?

1 个答案:

答案 0 :(得分:6)

使用这些在线工具的问题不会在base64转换中 - 它将把十六进制字符串解析为字节数组开始。在你真正的代码中,这将不是一个问题,因为它将是另一个阶段的输出。为了证明这一点,这里是一些示例Java代码,使用public domain base64 encoder

public class Test {
    public static void main(String[] args) throws Exception {
        byte[] data = { (byte) 0xB6, (byte) 0x79, (byte) 0xC0, (byte) 0xAF, 
                (byte) 0x18, (byte) 0xF4, (byte) 0xE9, (byte) 0xC5, 
                (byte) 0x87, (byte) 0xAB, (byte) 0x8E, (byte) 0x20, 
                (byte) 0x0A, (byte) 0xCD, (byte) 0x4E, (byte) 0x48, 
                (byte) 0xA9, (byte) 0x3F, (byte) 0x8C, (byte) 0xB6 };

        String text = Base64.encodeBytes(data);
        System.out.println(text);
    }
}

输出:tnnArxj06cWHq44gCs1OSKk / jLY =