Page 270 - Bkhargava_-_Grokaem_algoritmy
P. 270

Локально-чувствительное хеширование   269


        Сравниваются только хеш-коды -      хранить пароль не нужно! Алгоритм
        SHA очень часто используются для хеширования паролей. Хеширование
        является односторонним: вы можете получить хеш-код строки ...







        ... но не сможете восстановить исходную строку по хеш-коду:







        Это означает, что даже если злоумышленник похитит хеш-коды SHA с сер­
        веров Gmail, он не сможет по ним восстановить исходные пароли! Пароль
        можно преобразовать в хеш, но не наоборот.

        Под термином SHA скрывается целое семейство алгоритмов: SHA-0, SHA-1,
        SHA-2 и SHA-3. На момент написания книги в алгоритмах SHA-0 и SHA-1
        были обнаружены слабости. Если вы применяете алгоритм SHA для хеши­
        рования паролей, выбирайте SHA-2 или SHA-3. В настоящее время ~золо­
        тым стандартом~ хеширования паролей считается функция bcrypt (хотя
        идеальной защиты не бывает).



        Локально-чувствительное хеширование

        У хеширования SHA есть еще одна важная особенность: оно является
        л01шлыю-нечувствuтельным. Предположим, имеется строка, для которой
        генерируется хеш-код:







        Если изменить в строке всего один символ, а потом сгенерировать хеш за­
        ново, строка полностью изменяется!







                                                         www.trk.kg
   265   266   267   268   269   270   271   272   273   274   275