it-place.net > Уроци > Други
Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 Хеширане - основни понятия.
  1. Що е то хеширане
  2. за какво се използва
  3. Справяне с колизиите
  4. Алгоритми за хеширане
  5. Пароли, идентификация
     
Автор  johnfound (29.07.2004 22:38)  съобщение до автора
Погледнат  4480 пъти  добави към любими
Оценка  добави коментар
Гласове  13  изпрати на приятел
Коментари  (1)  абонирай се за Други
    Страница 1 / 5

 



Що е то хеширане и за какво се използва.

    Още една магическа дума - "хеш". :)

    Тази статия се появи в резултат от една дискусия на форума в която стана ясно, че всички са чували думата, но малко от начинаещите програмисти знаят какво точно означава и каква полза можем да имаме от тези техники в програмирането.

    Основната цел на статията е да изясни на начинаещите същността на нещата. От там нататък е много лесно да се намерят подробности и конкретни реализации използвайки <A HREF="http://www.google.com" TARGET="_blank" class="grau_normal">Google</A>.

    На английски: "hash, hashing". Превежда се буквално като "кълцам" или "бъркотия". Понякога се използва: "message digest", което може да се преведе буквално като "смляно съобщение" или "извлечение от съобщение". Друг път ще го срещнете като "digital fingerprint" - буквално, цифров пръстов отпечатък.

    Какво обаче означава това, отнесено към компютрите и информатиката?

    Най-общо хеширащите алгоритми получават на входа си някаква поредица от данни с произволна дължина - най-често стринг от символи, но може да са и други данни, а на изхода се получава едно число или стринг с фиксирана дължина, което характеризира "уникално" цялото входно съобщение. Пиша "уникално" в кавички, защото както ще видим по-нататък това не е точно така.
    За да стават нещата по-ясни, по-нататък в статията ще предполагаме, че входните данни са текстов стринг, а изходната стойност е число.
    За един добър хеширащ алгоритъм е задължително да отговаря на няколко условия:

    1. Да е необратим - тоест да не съществува алгоритмичен начин за възстановяване на изходният стринг от хеш стойността. (Казвам "алгоритмичен", защото винаги съществува начина с "груба сила" - тоест изброяваме всички възможни комбинации от входни данни и пробваме за всяка от тях докато намерим решението.)
   
    2. Да дава възможно най-равномерно разпределение на стойностите в допустимият диапазон, за типичните представители навходният стринг. Най-общото правило тук е, че при малки разлики във входните стрингове, хеш функцията трябва да дава големи разлики във изходните си стойност. По това свойство, хеш функциите много приличат на генераторите на случайни числа.

    3. Хеш функцията трябва по възможност да се изпълнява бързо. Това не е абсолютно задължителност, но повече скорост никога не вреди. ;)



  Следваща страница >> 


Ключови думи: хеш начинаещи програмиране хеширане


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 За автора: johnfound  
Занимавам се с програмиране от 1983 година. Експерт по програмиране на Delphi и Assembler. Разбира се понякога работя и на PHP, Perl и др.под. В момента се занимавам с програмиране на автоматизирани системи за производство в голяма немска фирма в България. От 2003г започнах проект с отворен код, целта на който е разработката на съвременна среда и средства за програмиране на асемблер под Windows, конкурентна на езиците от високо ниво. Подробности за проекта можете да намерите на: http://fresh.flatassembler.net
   
 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

Браво! Чудесна статия. Всеки който се занимава с бази данни ще се сблъска с хеширането, но в повечето книги само се среща този термин. Материала е написан съвсем разбираемо, хубавото е, че е подкрепен и с примери. Успех!

  paro777 на 18.04.2006 19:51

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008