
20.12.2007, 01:47
|
|
Members of Antichat - Level 5
Регистрация: 02.11.2006
Сообщений: 781
С нами:
10274726
Репутация:
1917
|
|
Сообщение от -=lebed=-
Вот сделал функцию для распознавания типа хэша (пока только 4, точнее 3, так как хэши MySQL5 и SHA-1 неотличимы).
PHP код:
function type_hash($string)
{
if (ereg('^([a-fA-F0-9]{16})$', $string)) return 1; // MySQL
if (ereg('^([a-fA-F0-9]{32})$', $string)) return 2; // MD5
if (ereg('^([a-fA-F0-9]{40})$', $string)) return 3; // MySQL5 или SHA-1
return 0; // неизвестен
}
1.Как сделать тоже самое, используя функцию preg_match?
2. Помогите с регулярками для определения типов хэшей:
DES (пример:HlXOX8MN5z4X6),
MD5 (Unix) $1$$uqbusDeGY2YWqg.T2S1100
MD5(APR) $apr1$$kRqAZHnuzcwDL84Mm7oc1.
MD5(Base64) Gh3JHJBzJcaScd3wyUS8cg ==
SHA-1 (Base64) NU4eI71bcnBGqeO0t9tXvY1u5oQ =
для MD5(Base64) и SHA-1 (Base64) даже придумывать ничего не надо поидее:
PHP код:
function type_hash($string)
{
if (ereg('^([a-fA-F0-9]{16})$', $string)) return 1; // MySQL
if (ereg('^([a-fA-F0-9]{32})$', $string)) return 2; // MD5
if (ereg('^([a-fA-F0-9]{40})$', $string)) return 3; // MySQL5 или SHA-1
if (ereg('^([a-fA-F0-9]{32})$', base64_decode($string))) return 4;// MD5(Base64)
if (ereg('^([a-fA-F0-9]{40})$', base64_decode($string))) return 5; //SHA-1 (Base64)
return 0; // неизвестен
}
__________________
Карфаген должен быть разрушен...
|
|
|