48

Can anyone recommend a straightforward way/tool to convert hex to base64?

I'm using Linux and OS X.

1
  • You want to convert Hex or Binary to Base64? Scriptable or is this a one-shot deal?
    – Chris S
    Jun 29, 2010 at 14:17

3 Answers 3

81

Use xxd with the -r argument (and possibly the -p argument) to convert from hex to plain binary/octets and base64 to convert the binary/octet form to base64.

For a file:

cat file.dat | xxd -r -p | base64

For a string of hex numbers:

echo "6F0AD0BFEE7D4B478AFED096E03CD80A" | xxd -r -p | base64
3
  • To prove that this is correct, you can perform the reverse operation and verify that the output of the reverse operation matches the input you provided to the above command. Eg. echo -n $UUID | sed 's/-//g' | xxd -r -p | base64 | base64 --decode | xxd -u | cut -d ' ' -f 2-9 | sed 's/ //g' May 1, 2020 at 0:01
  • 1
    The important info here is the "-n" option of echo (don't exist on all plateform) which avoids the newline.
    – Sandburg
    Oct 15, 2020 at 13:51
  • It produces base64 split by newlines. Use base64 -w 0 instead of base64 to avoid this.
    – Finesse
    Jul 28, 2023 at 14:57
3

Well, it depends on the exact formatting of your data. But you can do it with a simple shell scripts:

 echo "obase=10; ibase=16; `cat in.dat`" | bc | base64 > out.dat

Modify as needed depending on your data.

1
  • 4
    That will convert the string of decimal digits. It's not clear if this is what the OP wants or if he has hex digits and wants the bytes they represent converted to base64. Jun 29, 2010 at 14:21
0

Well, if your hex data is the hex view of a file, just attach the file to a outlook or thunderbird message and then save the message to somewhere. Then open the file with a text editor and see B64 code :)

It functions on Windows, but I think it is a universal way since saving as .EML the attachment is encoded to B64.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .