I've got a database with rows that are identified by 32-character hexadecimal GUIDs (stored as binary). I'm wondering how to compress these strings dynamically into a shorter, but still user-friendly representation... ideally for use in shared URLs. Since they're 32 characters hexadecimally (and case-insensitive currently) ... I tried hitting the binary representation with base64 encoding. That got them from 32 characters to 22 characters, but I wasn't sure if there was anything better that was common yet straightforward.
I'm also thinking about getting creative, given that even emoji now is technically URL-safe. Not sure if that's a good idea, though.
Has anyone considered cross-platform solutions for this problem before? Is it better just to generate new IDs entirely with a smaller subset?