Originariamente inviato da andr3a
Il tuo bel giro conduce ad un hash
questa funzione NON produce un hash, essendo che l'output ha lunghezza variabile
Codice PHP:
<?php

/** Setting error reporting */
error_reporting(E_ALL E_STRICT);
ini_set('display_startup_errors'1);
ini_set('display_errors'1);



function 
cripta($pass,$salt){    
    
/* variabili */
    
$array_pass = Array();
    
$array_salt = Array();
    
$array_ris = Array();
    
$ris=Array();
    
$n=0;
    
$i=0;
    
$j=0;
    
$y=0;

    
/* converto in array le due stringhe così da avere le due matrici 8 x 8  */
    
$hex_md5_pass bin2hex(md5($pass));
    
$hex_md5_salt bin2hex(md5($salt));

    
    
// riempo l'array pass
    
for($i=0;$i<8;$i++){
        for(
$j=0;$j<8;$j++){
            
$array_pass[$i][$j] = substr($hex_md5_pass,$n,1);
            
$n++;
        }
    }
    
    
$n=0;
    
// riempo l'array salt
    
for($i=0;$i<8;$i++){
        for(
$j=0;$j<8;$j++){
            
$array_salt[$i][$j] = substr($hex_md5_salt,$n,1);
            
$n++;
        }
    }    


    
/* moltiplico i due array */
    
for($i=0;$i<8;$i++){
        for(
$j=0;$j<8;$j++){
            
//prodotto riga per colonna
            
$array_ris[$i][$j]=0;
            for(
$y=0;$y<8;$y++){
                
$array_ris[$i][$j] = $array_ris[$i][$j]+$array_pass[$i][$y]*$array_salt[$y][$j];
            }
        }
    }    

    for(
$i=0;$i<8;$i++){
        
$ris[$i]=array_sum($array_ris[$i]);
    }

    return 
implode($ris);
}