Хеширане на пароли
Ако вие сте начинаещ програмист, ако вие искате да се развивате, то този пост може да се окаже полезен за вас. Защо да хешираме паролите и какво всъщност е хеширането. Най-просто казано хеширането е преобразуването на даден стринг в друг по сложен или не чак толкова сложен математически модел. Защо да го правите? Защото ако някой се добере до вашата база данни и открадне всички пароли в чист вид, имейли, никове, то биха станали много бели – крадене на акаунти, онлайн сметки, имейли и какво ли още не. Когато една парола е хеширана, да се върне обратно е изключително трудно. Особено в нея, ако има някакви специални знаци от рода на $ / * + – ! ? \ & : ; | ‘ “ схващате идеята
В днешно време разбирането на един прост хеш стринг е изключително лесна задача – брют форс или пък рейнбоу таблици. Т.е. имат ви всички хешове, сравняват в таблица с милиони записи от хешове, при познаване на само един хеш стринг всичко друго става много по-бързо – т.е. бързо ще се доберат до останалите пароли. Тези рейнбоу таблици за предназначени главно за md5 хеширане. Разбира се вие можете да си създадете свои начини за хеширане на паролите, но те със сигурност ще могат да се разбият изключително лесно от някой добър математик. Малко инфо за md5: MD5 е 128 битово хеширане на низ, който бива превърнат в 32 символен стринг от числа и букви. Друг вид хеширане е SHA1 (както и SHA0, SHA2 и в бъдеще SHA3) – то е 160 битово и е значително по-сигурно. При sha1 хеширането рейнбоу таблиците автоматично отпадат, но все още се ползва рядко.
Таааа как да си хешираме паролите? Аз лично ползвам md5, понеже ми върши перфектна работа, при md5 хеширането освен парола използвам и сол. Какво е сол – прибавен стринг към паролата. Така хеша става още по-труден за разбиване. Препоръчително е този стринг да е сравнително дълъг и да съдържа множество различни знаци – числа, букви и специални знаци.
Пример:
$salt=“ReallyLongString|:;.,<>/@$&^*()_=+-*/\!“;
$hash=md5($salt.$pass);
Идеята е да знаете солта за да можете да подсигурете успешното влизане на юзъра в системата. Солта може да е неговото име, време на регистрация, имейл или каквото друго се сетите.
Дано съм ви бил полезен
Related posts:
[...] в PHP, хеширането се прави с md5 или sha1. Тук може да намерите кратка статия за това, как се ползват двете функции в [...]