I am using the md5 function to hash a string into a 32 digit string.
str_to_encode = 'this is a test string which I want to encode'
encoded = hashlib.md5(str_to_encode).hexdigest()
I want to be able to decode this string (i.e. encoded in the example above) back to its original value. I don’t think this is possible using md5 (but if it is please let me know), but is there a compressionn function which I can use which will give me a 32 digit string at the end but which can be reverted?
EDIT:
The string being encoded is a url so will only be a couple of hundred characters max although in most cases it will be a lot less.
Thanks
It seems to me that you aren’t looking for a hash or encryption, you are looking for compression. Try
zliband base64 encoding:The length of the encoded data will grow as the input grows, but it may work for you.
Even restricting yourself to URLs, there’s no way to reversibly map them to 32-character strings, there are just too many possible URLs.