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

  #2  
Старый 19.12.2007, 02:59
presidentua
Постоянный
Регистрация: 04.11.2007
Сообщений: 331
Провел на форуме:
1724067

Репутация: 806
По умолчанию

Цитата:
Сообщение от -=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// MySQL или 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=
1.
PHP код:
if  (preg_match("/^([a-fA-F0-9]{16})$/",$string)) echo 'MySQL '
if  (
preg_match("/^([a-fA-F0-9]{32})$/",$string)) echo 'MD5 ';
if  (
preg_match("/^([a-fA-F0-9]{40})$/",$string)) echo 'MySQL или SHA-1'
2.
также как ты и делал, только те символы что не изменяются просто вводишь (только перед доларом надо постави "\" )
итак пример для
MD5(APR) $apr1$$kRqAZHnuzcwDL84Mm7oc1.
/^\$arp1\$\$[a-zA-Z0-9]{21}$/

ПС:для написания и отладки регулярных выражений можно использовать специальные прожки, например, VisualREGEXP и The Regex Coach
 
Ответить с цитированием