⊗ppPmAuRHS 424 of 447 menu

რეგისტრაციაში მარილის დამატება

მოკლედ, თქვენ უკვე იცით, რომ ჰეშირება md5-ის მეშვეობით - შეუქცევადი პროცესია და ჰაკერს, რომელმაც ჰეშზე წვდომა მოიპოვა, არ შეეძლება ამ ჰეშის მეშვეობით პაროლის მიღება.

სინამდვილეში ეს განცხადება მთლად სწორი არ არის - ამჟამად მავნე ჰაკერებმა შეადგინეს პოპულარული და არც ისე პოპულარული პაროლების ჰეშების ბიბლიოთეკები და ნებისმიერი უსინდისო შეუძლია გაშიფროს პაროლი, უბრალოდ მისი ჰეშის გუგლში ძიებით.

საუბარია საკმაოდ მარტივ, პოპულარულ პაროლებზე.

გაუგლეთ, მაგალითად, ჰეში 827ccb0eea8a706c4c34a16891f84e7b და დაუყოვნებლივ გუგლის ძიებაში დაინახავთ, რომ ეს პაროლი '12345' არის.

საკმაოდ რთული პაროლების ჰეშების ამ გზით გაშიფვრა შეუძლებელია (სცადეთ).

თქვენ შეიძლება იკითხოთ, მაშინ რა არის პრობლემა - მოდით ყველა დავრეგისტრირდეთ რთული პაროლებით. თუმცა, არსებობს პრობლემა - უმეტესობა მომხმარებელი არ ფიქრობს თავისი მონაცემების უსაფრთხოებაზე და შეიძლება შეიყვანოს საკმაოდ მარტივი პაროლები.

ჩვენ შეგვიძლია რეგისტრაციის დროს ვაიძულოთ მათ გამოიგონონ უფრო გრძელი პაროლები, ლიმიტის დაწესებით, მაგალითად, მინიმალური სიმბოლოების რაოდენობა 6-ზე ან 8-ზე, თუმცა, მაინც გამოჩნდება '123456' ან '12345678' ტიპის პაროლები.

რა თქმა უნდა, შეიძლება გამოიგონოთ უფრო ჭკვიანი ალგორითმი პაროლის სირთულის შესამოწმებლად, მაგრამ არსებობს სხვა გამოსავალი.

ამ გამოსავალის არსი ასეთია: პაროლები უნდა დავამარილოთ. მარილი - ეს არის სპეციალური შემთხვევითი სტრიქონი, რომელიც დაემატება პაროლს რეგისტრაციის დროს და ჰეში უკვე გამოითვლება არა მარტივი პაროლიდან, არამედ მარილი+პაროლის სტრიქონიდან, ანუ დამარილებული პაროლიდან.

ანუ რეგისტრაციის დროს თქვენ გააკეთებთ დაახლოებით ასეთ რამეს:

<?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-table-დან } return $salt; } ?>

ამ ფუნქციის გამოყენებით შეგვიძლია გადავწეროთ ჩვენი კოდი ასე:

<?php $salt = generateSalt(); // მარილი $password = md5($salt . $_POST['password']); // დამარილებული პაროლი ?>

კიდევ ერთხელ გავიმეოროთ, რომ ეს იყო ცვლილებები რეგისტრაციის დროს - მონაცემთა ბაზაში ვინახავთ არა უბრალოდ პაროლის ჰეშს, არამედ დამარილებული პაროლის ჰეშს.

ეს ჯერ კიდევ არ არის ყველაფერი: მომხმარებლების ცხრილში ველების login და password გარდა საჭიროა გაკეთდეს ასევე ველი salt, რომელშიც ვინახავთ თითოეული მომხმარებლის მარილს.

განახორციელეთ ზემოთ აღწერილი რეგისტრაცია დამარილებული პაროლით.

ქართული
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語Қазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა