md5()
MD5(Message Digest 5) 128-битови извличания. Като MD5 се използва в многобройни приложения за сигурност и безспорно е най-популярната функция. Ето как изглежда едно хеширане на парола.
md5('123');
202cb962ac59075b964b07152d234b70
Тук вие можете да влияете на хеша като добавите някакви букви/символи/цифри.
md5('123'.'x1x2x3');
35c42f8bc472414de4de708e7ebd115c
sha1()
SHA-1(Secure Hash Algorithm) е може би за сега най-сигурната функция за хеширане превръща текст с дължина до 264-1 бита в 160-битово извлечение представено като четиридесетцифрено шестнадесетично число. Ето по какъв начин sha1() хешира нашата парола.
sha1('123');
40bd001563085fc35165329ea1ff5c5ecbdbbeef
При sha1() вие отново можете да си създавате схеми като при md5()
sha1('123'.'x1x2x3');
c807dc901fc9f7a96e1af2c040421fd843b57d2f
За SHA-1 все още не са създадени реални колизии които да могат да декриптират хеша.
crypt()
crypt е малко по-различна хеш функция от md5() и sha1(). Тази функция използва UNIX DES алгоритъм. Хеша също изглежда доста по-различно и тук трябва да се въведе string и salt.
string - Текста който ще се хешира
salt - текст, на базата на който ще се извършва хеширането. Ако salt е зададен хеширането ще се извърши само веднъж, а ако не е зададен то паролата се генерира постоянно ако презареждате страницата.
Пример : crypt('string','salt')
crypt('123','xx')
xxC9TW3tQXUUk
Написах код който ще хешира '123' като първите букви/символи от нашият код ще бъдат 'xx'
Ако сменим и напишем вместо 'xx' - 'x2' то тогава и целият хеш ще бъде променен
crypt('123','x2');
x2Mt6KxrO/3Co
По сигурност ги подреждам така :
1. sha1()
2. md5()
3. crypt()