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);
}