То hilkfild:
Есть предложение хранить в базе хэши не в виде строки типа char(32) а в виде char(16) используя функции кодирования хэша (перед занесением в базу) и декодирования (после извлечения из базы)
Выгоды: уменьшение базы, быстрее поиск по базе.
Вот сами функции кодирования и декодирования:
PHP код:
function code_hash($hash)
{
$n=0;
$hash_code="";
$l=strlen($hash)-1;
do
{
$code='0x'.$hash[$n].$hash[$n+1];
$hash_code.=chr(hexdec($code));
$n++;
}
while ($n++<$l);
return $hash_code;
}
PHP код:
function decode_hash($string)
{
$n=0;
$decode_hash="";
$l=strlen($string)-1;
do
{
$code=ord($string[$n]);
$decode_hash.=dechex($code);
}
while ($n++<$l);
return $decode_hash;
}
ЗЫ Открываются перспективы на экономичное хранение других популярных хэшей (MySQL - char(8) против char(16), MySQL5 - char(20) против char(40), и SHA-1 - char(20) против (40). у всех чарсет 0-9a-f
Кроме того на поле pass я так понял целесообразно использовать тип VARCHAR?
Последний раз редактировалось -=lebed=-; 18.12.2007 в 23:41..
А как добавлять сразу множество? а не по 1-му паролю?
http://md5.xek.cc/wlist.php - но щас доступ запрещён, чтоб не нафлудили в базу чего лишнего...
ЗЫ Я щас делаю модернизированный сервис:
Функционал: автоматическое распознавание распространённых хэшей (пока 4: Mysql, Mysql5, md5, sha1) и поиск в базе пароля по любому из них, а так же запрос на популярные онлайн крекеры...
Последний раз редактировалось -=lebed=-; 19.12.2007 в 13:02..