Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   [Web-извращенцам] хеширование (https://forum.antichat.xyz/showthread.php?t=63044)

.:EnoT:. 29.02.2008 05:16

[Web-извращенцам] хеширование
 
В общем темка довольно таки интересная.
Решил в своём движке сделать такой метод хеширования пасов, чтобы даже самый умный ][, имеющий гигабайты словарей до старости брутил хеш))
Предполагается плюс ко всему солько. да и собственно у кого какие мысли по выделению соли? тоже интерсно было бы узнать)

В общем кто на что способен, выкладывайте :)
Маленький пример:

PHP код:

function super_hash($pass)
{
    
$pass hash_hmac('md5'md5(base64_encode(strrev($pass))), 'bugaga');
    return 
$pass;
}
echo 
super_hash(12345); 


bul.666 29.02.2008 06:12

Тема интересна, если не использовать стандартные алгоритмы типа md5 и base64

Hawkins 29.02.2008 06:51

$pwd=substr(sha1(md5($password)), 0, 10);
анбрутабл, никаких солей, места в бд занимает немного =)

Isis 29.02.2008 07:06

Бред....
Способов куча

.:EnoT:. 29.02.2008 07:09

Цитата:

Сообщение от Isis
Бред....
Способов куча

дргого ответа от тебя ожидать было бы глупо)
раз куча способов - выкладывай, буду только рад :)

Macro 29.02.2008 10:22

PHP код:

<? 
function macrohash($string

$b=bin2hex($string); 
$str ''
$c=''


for(
$i=0$i<=strlen($b)-2$i+=2

$sm=0
for(
$j=0$j<=strlen($b-2); $j+=2

$sm=$sm+hexdec(substr($b,$j,2)); 

$asdf2=explode(".",$sm/3.1415927); 
$summab=$asdf2[1];
$x=hexdec(substr($b,$i,2)); 
$c.=dechex($x+intval(strlen($string)*$x)+$summab/$x); 



if (
strlen($c)<=32)  

$d=''

for(
$i=0strlen($d)<=32$i+=2
{
$sm=0
for(
$j=0$j<=strlen($b-2); $j+=2

$sm=$sm+hexdec(substr($b,$j,2)); 

$asdf2=explode(".",$sm/3.1415927); 
$summab=$asdf2[1];
$d.=dechex(intval((hexdec(substr($c,$i,2))+strlen($d))*$summab*$x)); 

$str=substr($d,strlen($d)-32,32); 


elseif(
strlen($c)>32

$w=''
$c=substr($c,strlen($c)-5); 
for(
$i=0strlen($w)<=32$i+=2
{
$sm=0
for(
$j=0$j<=strlen($b-2); $j+=2

$sm=$sm+hexdec(substr($b,$j,2)); 

$asdf2=explode(".",$sm/3.1415927); 
$summab=$asdf2[1];
$w.=dechex(intval((hexdec(substr($c,$i,2))+strlen($w))*$summab*$x)); 

$str=substr($w,0,32); 

return 
$str

?>

Моя функция хэширования без использования стандартных функций

Noiro 29.02.2008 13:50

Обычно использую просто двойной sha1 с салтом и "ключем", например так - ключ хранится в исходниках а не в базе, в роли салта - юзернейм :
PHP код:

$key "SomeReeeeeeeeealllyfriggginloooooooongstrrrrrrrrrrrrrinnnnnnng123432432432";
$hash sha1($key.sha1($pass).$username

А вообще соглашусь с Isis, способов безконечно много даже используя комбинации классических алгоритмов хеширования. Пойдет любой, главное чтобы использовались салты и алгоритм небыл включен в известные брутеры.

Grey 29.02.2008 14:10

Цитата:

Сообщение от Hawkins
$pwd=substr(sha1(md5($password)), 0, 10);
анбрутабл, никаких солей, места в бд занимает немного =)

Бред, почему не брутабельно?

PHP код:

<?php
$hash 
'';
$file file('slovar.txt');
for(
$i=0;$i<count($file);$i++)
{
if(
$hash == substr(sha1(md5(trim($file[$i]))), 010))
{
echo(
'pass: '.$file[$i]);
break;
}
}
?>

Да кстати алгоритм очень тупой, я уже раньше писал что в теории обрубание хеша напротив только увеличивает колизию, т.к. одному такому урезаному хешу будут соответсвовать n-ое число не урезанных хешей, т.е. к примеру, если для некоторой функции хеш от 1 = aaabb, а от 111 = aaacc, то получится что урезаному хешу aaa будет соответствовать и 1 и 111.

Или говоря про небрутабельность ты имелл ввиду скорость? Если да, то не думаю что будет медлнее чем тот же мд5 юникс.

$n@ke 29.02.2008 14:13

сгласен с тем что это бессмысленно.

на данный момент существует порядком различных типов хеширования.тот же двойной sha1 с салтом при норм.пароле - будешь расшифровывать пол жизни.

blackybr 29.02.2008 14:19

Цитата:

Сообщение от Noiro
Обычно использую просто двойной sha1 с салтом и "ключем", например так - ключ хранится в исходниках а не в базе, в роли салта - юзернейм :
PHP код:

$key "SomeReeeeeeeeealllyfriggginloooooooongstrrrrrrrrrrrrrinnnnnnng123432432432";
$hash sha1($key.sha1($pass).$username

А вообще соглашусь с Isis, способов безконечно много даже используя комбинации классических алгоритмов хеширования. Пойдет любой, главное чтобы использовались салты и алгоритм небыл включен в известные брутеры.


с тех пор как паспро стал модульным, это не актуально


Время: 19:51