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