Search code examples
pythonhashmd5pack

How do you reencode a python string via Packing and Unpacking using binascii?


I have a file hashed to a standard md5 Hash

Correction: OpenSSL Hashes are HEXDECIMAL representations.

MD5 Hash:   57ED2E029BF9CA39383D2A671EF4FB50

I have a program that requires a byte encoding base64 md5 hash.

MD5 BASE64 byte: 8se7isyX+S6Yei1Ah9AhsQ==

How do you use pythons 'binascii' b2a methods to convert the standard MD5 hash to a Base64?

The below is wrong.

import binascii 
bin = binascii.a2b_uu('57ED2E029BF9CA39383D2A671EF4FB50')
base = binascii.b2a_base64(bin) 

Output +> 'QUlZTlYUmikRYUjRXkQjWQkiiSkmkhZmVjhZkWTAAAAA\n'

TL;DR:

I need to take hexstring, convert it to binary, and then base64 the binary.. what's the python way?

Reference:


Solution

  • Here's how you can do the conversion with binascii. It requires two conversions, one from hex to binary and another from binary to base64.

    >>> hex_hash = '4bd2f7940a1ec86efe1d1178b4cb23b7'
    >>> binascii.b2a_base64(binascii.a2b_hex(hex_hash))
    'S9L3lAoeyG7+HRF4tMsjtw==\n'