Perchè non fa quello che ho detto???  
 
Come promesso ecco il codice, che sicuramente sarà da migliorare anche nella sua stesura...
	codice:
	
FUNZIONE PER CRIPTARE:
function cripta($testo, $key) {
	$n_random = rand(1000,9999);
	$passw = "ASdwEfVcHy;.y";
	$chiave = md5($n_random . $key . $passw);		
	$posizione = 0;
		for($i = 0; $i < strlen($testo); $i++){	
			if ($cont > 31){
				$cont = 0;
			}
			$ascii_testo = ord(substr($testo,$i,1));				
			$ascii_chiave = ord(substr($chiave,$cont,1));			
				if ($ascii_testo > $ascii_chiave) {
					$controllo = "8";
					$valore = ($ascii_testo - $ascii_chiave) + $posizione;							
				}
				else {
					$controllo = "9";					
					$valore = $ascii_testo + $ascii_chiave + $posizione;						
				}								
					$lunghezza = strlen($valore);
					$append = $controllo . $lunghezza . $valore;
						$testoCompleto = $testoCompleto . $append;
						$cont = $cont + 1; 	
						if ($posizione > 32) {
							$posizione = 0;						
						}
						else {	
							$posizione = $posizione + 2 + $i;
						}							
		}		
	return $n_random . $testoCompleto;		
}
FUNZIONE PER DECRIPTARE:
function decripta($testo, $key) {
	$n_random = substr($testo, 0, 4);
	$passw = "ASdwEfVcHy;.y";
	$chiave_originale = md5($n_random . $key . $passw);	
	$puntatore = 4;	
	$posizione = 0;
	$cont = 0;
	$c = 0;
		for($i = 4; $puntatore < strlen($testo); $i++){	
			if ($cont > 31){
				$cont = 0;
			}
			$controllo = substr($testo,$puntatore,1);			
			$puntatore = $puntatore + 1;			
			$n_lungh = substr($testo,$puntatore,1);			
			$puntatore = $puntatore + 1;			
			$valore = substr($testo,$puntatore,$n_lungh);			
			$puntatore = ($puntatore + $n_lungh);
			       if ($controllo == 8) {
					$ascii_key = ord(substr($chiave_originale,$cont,1));						
					$ascii_chiave = $ascii_key + $valore - $posizione;					
					$c_valore = chr($ascii_chiave);						
				}
				else {
					if ($controllo == 9) {
						$ascii_key = ord(substr($chiave_originale,$cont,1));							
						$ascii_chiave = (($valore - $ascii_key) - $posizione);						
						$c_valore = chr($ascii_chiave);
					}
					else {
						return "-1";
					}
				}
					$testoCompleto = $testoCompleto . $c_valore;	 				
						if ($posizione > 32) {
							$posizione = 0;						
						}
						else {	
							$posizione = $posizione + 2 + $c;
						}	
			$cont = $cont + 1; 	
			$c = $c + 1;	
		}
			return $testoCompleto;
}
 
Che ve ne pare...
E' un vero capolavoro  
 
 