Voor een ETag wil ik een hexadecimale MD5-hash converteren naar Base32. Dat heb ik op de volgende twee manieren geprobeerd, maar ik krijg door afrondingsverschillen onnauwkeurige resultaten:
Ik heb hier verder geen wiskundige of technische onderbouwing voor, maar met de volgende hash als invoer van een arbitrair bestand leidt dit via beide wegen tot hetzelfde antwoord:
Ik zag met jullie input dat ik het even moest omdenken. Base16 (hex) en Base32 zijn slechts stringnotaties van binaire data. Voor het zusje Base64 geldt hetzelfde. Ik kan dus ook md5_file() met binaire output gebruiken en daarna base64_encode() gebruiken voor de conversie naar een string. En dat werkt: