
13.09.2009, 15:27
|
|
Он хакер.
Регистрация: 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..
|
|
|