Un id a 32 bit è costituito da così pochi dati con così poca ridondanza da sfruttare che un vero "algoritmo di compressione" probabilmente non aiuterà molto. D'altra parte, semplicemente usando una base numerica più alta in cui si usano lettere e cifre per rappresentare il numero probabilmente si ottiene esattamente quello che si sta cercando. Ad esempio, ecco il valore intero a 32 bit più grande possibile in diverse basi:
Binary 1111111111111111111111111111111
Ternary 12112122212110202101
Quaternary 1333333333333333
Quinary 13344223434042
Senary 553032005531
Octal 17777777777
Decimal 2147483647
Duodecimal 4BB2308A7
Hexadecimal 7FFFFFFF
Vigesimal 1DB1F927
Base 36 ZIK0ZJ
La Base 36 è un punto di arresto logico perché le lettere A-Z e le cifre 0-9 danno esattamente 36 simboli, quindi per andare a basi ancora più elevate sarebbe necessario introdurre qualcosa di meno ovvio e possibilmente difficile da scrivere.
Un "numero" di sei cifre dovrebbe essere abbastanza breve da consentire a chiunque di digitare facilmente a mano. Immagino che tu possa elaborare l'algoritmo triviale per convertire un numero da una base all'altra da solo.