esistono grosso modo due generi di azioni del tipo indicato:

1. formare una stringa di lunghezza massima fissa predeterminata a partire da stringhe di lunghezza qualsiasi e che sia "la più unica possibile"
2. analogamente al punto 1, ma in modo che vi sia una reale unicità e il processo sia anche reversibile

Il punto 1 rientra nell'ambito delle cosiddette "tabelle hash": in pratica generare una sorta di "firma" di lunghezza massima stabilita a partire da stringhe di lunghezza qualunque... esistono vari algoritmi, alcuni molto complessi, ma in PHP puoi fare per esempio:

Codice PHP:
$stringaridotta md5($stringacompleta); // ottieni una stringa di 32 caratteri 
...dato che si riduce il numero di stringhe utilizzabili è possibile (anche se molto difficile) che si ottengano due stringhe ridotte uguali partendo da due complete diverse: è raro ma può capitare.


Il punto 2 rientra invece nell'ambito delle "compressioni senza perdita di informazioni" (per esempio le compressioni ".zip"), ma non si può prestabilire la lunghezza massima della stringa finale... eventualmente si può fare una stima sulla base dei dati da "comprimere", ma bisogna conoscerli... in PHP puoi fare

Codice PHP:
$stringaridotta gzcompress($stringacompleta); 
e il processo inverso:
Codice PHP:
$stringaridotta gzuncompress($stringacompleta);