⊗ppPmAuRHS 424 of 447 menu

Արտահանվող գրանցման մեջ աղի ավելացում

Այսպիսով, դուք արդեն գիտեք, որ հեշավորումը md5-ի միջոցով անշրջելի գործընթաց է, և հաքերը, ով ստանում է հեշի հասանելիություն, չի կարողանա ստանալ գաղտնաբառը այդ հեշից:

Իրականում այս պնդումը լիովին ճիշտ չէ - ներկայումս չար հաքերները կազմել են հանրաճանաչ և ոչ այնքան հանրաճանաչ գաղտնաբառերի հեշերի գրադարաններ, և ցանկացած հիմար կարող է գաղտնաբառը պարզել, պարզապես գուգլելով դրա հեշը:

Խոսքը բավականին պարզ, հանրաճանաչ գաղտնաբառերի մասին է:

Օրինակ, գուգլեք 827ccb0eea8a706c4c34a16891f84e7b հեշը և անմիջապես Google-ի որոնման արդյունքներում կտեսնեք, որ սա '12345' գաղտնաբառն է:

Բավականին բարդ գաղտնաբառերի հեշերը այս կերպ հնարավոր չէ պարզել (փորձեք):

Դուք կարող եք հարցնել, թե որտեղի՞ց է այդ դեպքում խնդիրը - ասենք, մենք բոլորս կգրանցվենք բարդ գաղտնաբառերով: Սակայն կա խնդիր - օգտատերերի մեծամասնությունը չի մտածում իրենց տվյալների անվտանգության մասին և կարող է մուտքագրել բավականին պարզ գաղտնաբառեր:

Մենք կարող ենք գրանցման ժամանակ պարտադրել մտածել ավելի երկար գաղտնաբառեր, սահմանափակելով, օրինակ, նվազագույն նիշերի քանակը 6-ով կամ 8-ով, սակայն, այնուամենայնիվ, կհայտնվեն '123456' կամ '12345678' տիպի գաղտնաբառեր:

Կարելի է, իհարկե, մտածել ավելի խելացի ալգորիթմ գաղտնաբառի բարդությունը ստուգելու համար, բայց կա այլ լուծում:

Այս լուծման էությունը հետևյալն է. գաղտնաբառերը պետք է աղել: Աղը հատուկ պատահական տող է, որը կավելացվի գաղտնաբառին գրանցման ժամանակ, և հեշը արդեն կհաշվարկվի ոչ թե պարզ գաղտնաբառից, այլ աղ+գաղտնաբառ տողից, այսինքն աղացած գաղտնաբառից:

Այսինքն գրանցման ժամանակ դուք կանեք mոտով բան, օրինակ.

<?php $salt = '1sJg3hfdf'; // աղը - բարդ պատահական տող $password = md5($salt . $_POST['password']); // վերափոխում ենք գաղտնաբառը աղացած հեշի ?>

Այս դեպքում աղը յուրաքանչյուր օգտատիրոջ համար տարբեր կլինի, այն պետք է պատահականորեն գեներացվի գրանցման պահին:

Ահա պատրաստի ֆունկցիա, որը կանի դա.

<?php function generateSalt() { $salt = ''; $saltLength = 8; // աղի երկարությունը for($i = 0; $i < $saltLength; $i++) { $salt .= chr(mt_rand(33, 126)); // նիշ ASCII-աղյուսակից } return $salt; } ?>

Օգտագործելով այս ֆունկցիան, մենք կարող ենք վերագրել մեր կոդը ահա այսպես.

<?php $salt = generateSalt(); // աղը $password = md5($salt . $_POST['password']); // աղացած գաղտնաբառը ?>

Կրկնեմ ևս մեկ անգամ, որ սրանք գրանցման ժամանակ կատարված փոփոխություններ էին - ՏՏ-ում պահպանում ենք ոչ թե պարզապես գաղտնաբառի հեշը, այլ աղացած գաղտնաբառի հեշը:

Սա դեռ ամենը չէ. օգտատերերի աղյուսակում, բացի login և password դաշտերից, անհրաժեշտ է ստեղծել նաև salt դաշտ, որտեղ մենք կպահենք յուրաքանչյուր օգտատիրոջ աղը:

Իրականացրեք վերը նկարագրված գրանցումը աղացած գաղտնաբառով:

Հայերեն
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել