4

I've followed this: https://dev.twitter.com/docs/auth/creating-signature

to the end but I can't find how to encode a "binary string" to base64(at the end). I wanted to try online converters first but they don't give the string the show "tnnArxj06cWHq44gCs1OSKk/jLY="

Tried this: http://www.motobit.com/util/base64-decoder-encoder.asp

and

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

and

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

and none give that string.

I'm going to be using java. But I think all those java tools I search for will give the same result as the online converters. What has to be done to encode a "binary string" to base64?

Marco
  • 56,740
  • 14
  • 129
  • 152
Dave
  • 477
  • 2
  • 5
  • 18
  • Web-based tools really aren't good at binary i/o. Does it have to be web-based? – Chris Eberle Dec 04 '11 at 06:32
  • 1
    using http://commons.apache.org/codec/api-release/org/apache/commons/codec/binary/Base64.html ? –  Dec 04 '11 at 06:32
  • It doesn't have to be web-based. I'm just trying to figure each step out and what I'd have to do. – Dave Dec 04 '11 at 07:08

3 Answers3

6

The problem of using those online tools isn't going to be in the base64 conversion - it's going to be parsing the hex string into a byte array to start with. In your real code that won't be a problem, as it'll be the output of another stage. Just to prove that, here's some sample Java code, using a 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);
    }
}

Output: tnnArxj06cWHq44gCs1OSKk/jLY=

Jon Skeet
  • 1,421,763
  • 867
  • 9,128
  • 9,194
  • 1
    Okay. I get it. Thanks. So here: http://ostermiller.org/calc/encode.html I go from "b679c0af18f4e9c587ab8e200acd4e48a93f8cb6" to decode hex. Then Encode base64 and it came out right "tnnArxj06cWHq44gCs1OSKk/jLY=". One thing I wasn't seeing was the hex thing. – Dave Dec 04 '11 at 07:16
0

You can use this link to convert Binary String to Base64 https://cryptii.com/pipes/binary-to-text

Here is an example of converting Binary String to Base64 String: enter image description here

Here is another example of converting Normal String to Base64 String

enter image description here

Deb
  • 21
  • 1
  • 4
  • 1
    I do not see how this answers the question at the top of this page, but it should. Please [edit] according to [answer] or delete the answer. Otherwise it risks being flagged as "not an answer" and being deleted. – Yunnosch Jan 26 '22 at 07:19
0

Java 8 has come up with java.util.Base64 package to help encode bytes to Base64 and vice-versa

import java.util.Base64;


byte[] bytes = string.getBytes();

// returns byte[]
Base64.getEncoder().encode(bytes);

// returns String
Base64.getEncoder().encodeToString(bytes);
Sorter
  • 9,704
  • 6
  • 64
  • 74