|
2. Пароли, идентификация.
Другата голяма област на приложение на хеш функциите е идентификацията на потребители и разпознаване на пароли. Тук се използва свойството на хеша, че е необратим. Тоест няма алгоритмичен начин по хеш стойността да определим началният стринг. При използване на хеширането в тази област, колизиите нямат значение, защото можем да използваме хешове с произволна дължина, дори и такава по-голяма от входният стринг. Тук не се гони бързодействие, а сигурност. А знаем, че ако дължината на хеша е по-голяма от тази на входният стринг, е възможно да се намери такава функция, която да не дава колизии за целият диапазон на входните стрингове. Как въобще става разпознаването на потребители по парола? Най-простият начин е да пазим паролите в масив, заедно със имената на потребителите и директно да ги сравняваме с тези, които потребителят въвежда. Този метод е безкрайно ненадежден обаче. Всеки който има достъп до файла с паролите, ще може да ги види и използва. При предаване на тези пароли по интернет, нещата са още по-зле, защото може да ги прихване всеки. Използването на криптиране на файловете с пароли също не е решение, защото всеки криптиращ алгоритъм може да се декриптира. Всъщност правилното решение е просто - не пазим въобще паролите на потребителите, а пазим само хеш стойността от тази парола. При искане на достъп до някой ресурс, потребителя въвежда някаква дума, която се хешира и така получената стойност се сравнява с базата данни за даденият потребител. Ако хеш стойностите съвпадат, потребителя се пуска. Дори и някой да има достъп до базата данни, той няма да може да разбере какви са паролите на потребителите, защото хеш функцията не може да се инвертира. Както вече казахме, колизиите тук нямат значение, защото се избират хешове с голяма дължина (MD5 например е 16 байта - 128бита дълъг) Изобщо, приложението на хеш функциите в тази област е тривиално и сравнително лесно, а основният акцент е върху качеството на самите хеш алгоритми. 25.07.2004 ©2004 John Found <A HREF="http://asm32.hosters.uni.cc/" TARGET="_blank" class="grau_normal">callPower - Българският сайт за асемблер.</A>
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||









