Показать сообщение отдельно

  #888  
Старый 13.09.2009, 15:27
m0Hze
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
С нами: 9223466

Репутация: 3171


По умолчанию

PHP код:
 Уродуем md5 хеш,до неузнаваемости.
function 
encode_ezom($md5)
{
    
$array_md5 str_split($md5);
    
$array_copy_md5 $array_md5;
    
//print_r(array_keys($array_md5,"a"));
    
$unique array_unique($array_md5);
    
$array_md5 array_values(array_unique($array_md5));
    
$numm .= ':';
    
//print_r($array_md5);
    
for ($i 0$i count($array_md5); $i++) {
        
$chars .= $array_md5[$i];
        
$array_keys array_keys($array_copy_md5$array_md5[$i]);
        for (
$j 0$j count($array_keys); $j++) {
            if (
$j != count($array_keys) - 1) {
                
$numm .= $array_keys[$j] . '.';
            } else {
                
$numm .= $array_keys[$j];
            }

        }
        
$numm .= ':';


    }
    return (
$chars $numm);
}
function 
decode_ezhom($ezhom)
{
    
$match Explode(':'$ezhom);
    unset(
$match[count($match) - 1]);
    
$mini_hash str_split($match[0]);
    for (
$i 1$i count($match); $i++) {
        
$char explode('.'$match[$i]);
        for (
$t 0$t count($char); $t++) {
            
$result[$char[$t]] = $mini_hash[$i 1];
        }
    }
    
ksort($result);
    foreach (
$result as $key => $val) {
        
$hash .= $val;
    }
    return (
$hash);
}

$md5 md5(rand());
echo 
'Начальный <b>MD5</b> хеш: ' $md5 '<br>';

$ezhom encode_ezom($md5);
echo 
'За<b>EZHOM</b>еный хеш: ' $ezhom '<br>';

$md5 decode_ezhom($ezhom);
echo 
'Раз<b>EZHOM</b>еный хеш: ' $md5 '<br>'
Принцип работы прост:
- Удаляем все дубли цифер,букв из начального хеша.
- Делаем реверс полученого результата.
- Заводим отдельный массив,в котором храняться ключи,от цыфр и букв в изначальном хеше.
Собственно:

Начальный MD5 хеш: 90c838391b2bb4cf27115449e681bf84;
ЗаEZHOMеный хеш: 6e57f42b138c09;
+ Ключи для расшифровки: :0.7.23:1:2.14:3.5.26.30:4.6:8.18.19.27:9.11.12.28 :10.16:13.21.22.31:15.29:17:20:24:25:
РазEZHOMеный хеш: 90c838391b2bb4cf27115449e681bf84
Помоему,очень удобная защита от недохеккеров.
Храним в таблице например так:
hash: 6e57f42b138c09
keys::0.7.23:1:2.14:3.5.26.30:4.6:8.18.19.27:9.11. 12.28:10.16:13.21.22.31:15.29:17:20:24:25:
Собственно все.
Штука ацкая,и туда апихано много-ого различных циклов,чтобы сделать код менее читаемым.Можно было убрать нах 2 массива,но не нравиться так =)

Последний раз редактировалось m0Hze; 13.09.2009 в 15:39..
 
Ответить с цитированием