თქვენ არასოდეს არ უნდა შეინახოთ პაროლი უბრალო ტექსტში მომხმარებლის დადასტურებისას ან რაიმე მსგავსის გაკეთებისას.
ვინაიდან ბევრი ადამიანი იყენებს ერთსა და იმავე პაროლს, თუ თავდამსხმელი აღმოაჩენს დაშიფრული პაროლების მონაცემთა ბაზას, მათი ადვილად გამოყენება შესაძლებელია შესაბამის წერილებთან ერთად დაკავშირებულ ვებსაიტში ან ანგარიშში შესასვლელად და სხვა ანგარიშებზე წვდომის მცდელობისთვისაც კი.
პაროლები ხშირად იშლება დღეს, როდესაც პაროლი მოწოდებულია. რეკომენდირებულია მარილის გახეხვა და მარილის შენახვა გაშიშვლებულ პაროლთან ერთად.
დამარილება შეიძლება ჩანდეს ჰეშ-ბრაუნის რეცეპტის ერთ-ერთ საფეხურად, მაგრამ კრიპტოგრაფიაში ის გულისხმობს შემთხვევითი მონაცემების დამატებას ჰეშის ფუნქციის შეყვანაში, რათა უზრუნველყოს, რომ ჰეში ყოველთვის იძლევა უნიკალურ შედეგს, მაშინაც კი, თუ შეყვანები იდენტურია.
შედეგად, მარილის დამატებით შექმნილ გამორჩეულ ჰეშს შეუძლია დაგვიცვას თავდასხმის რამდენიმე მეთოდისგან, მათ შორის ჰეშის ცხრილის თავდასხმებისგან, ხოლო ლექსიკონისა და უხეში ძალის ხაზგარეშე მცდელობების ჩახშობა.
აქ, კოდის ფრაგმენტების დახმარებით, ჩვენ ვაჩვენებთ, თუ როგორ გამოიყენოთ „bcrypt“ თქვენი პაროლების დასაცავად.
მაშ, რა არის "bcrypt"?
Bcrypt არის ჰეშირების ბიბლიოთეკა, რომელიც მხარს უჭერს რამდენიმე ენას და უზრუნველყოფს სპეციალური პაროლის დაშიფვრას. თქვენი პაროლის უსაფრთხოების გასაზრდელად, ის ავტომატურად აწარმოებს დამატებით შემთხვევით სიმბოლოებს (salt) თქვენი სტრიქონის დაშიფვრისას.
თქვენ ასევე შეგიძლიათ განსაზღვროთ რამდენი დამატებითი სიმბოლო გსურთ დაამატოთ შემომავალ სტრიქონს.
bcrypt ბიბლიოთეკა კითხულობს მხოლოდ ბაიტის კოდს და არა დაუმუშავებელ სტრიქონებს. ამიტომ, სანამ დაშიფვრისთვის bcrypt-ში შემომავალი პაროლის სტრიქონს გაგზავნით, ჯერ უნდა დაშიფროთ იგი.
დაშიფვრა და კოდირება არ არის იგივე. ის უბრალოდ დარწმუნდება, რომ სტრიქონი მანქანით იკითხება, სანამ დაშიფვრის ტექნიკით დაიფარება.
bcrypt-ის გამოყენება პითონში პაროლის დაშიფვრისთვის
Python ხდის bcrypt პაროლის დაშიფვრას მარტივს. ჩვენ კონცენტრირდებით ამის გაკეთებაზე ჩარჩოს დახმარების გარეშე. მაგრამ არ ინერვიულოთ, თუ გესმით, როგორ შეინახოთ მომხმარებლის მონაცემები და წაიკითხოთ ისინი მონაცემთა ბაზიდან, პროცედურა იგივეა ჩარჩოებში.
მონტაჟი
საჭიროა მხოლოდ Python-ის ვირტუალური გარემოს დაყენება და შემდეგ PyCharm-ის მსგავსი IDE-ის გამოყენება. ბიბლიოთეკა ჯერ უნდა დაინსტალირდეს:
პაროლის დაშიფვრა
ვნახოთ, როგორ გამოვიყენოთ bcrypt ტექსტის დაშიფვრად მისი ინსტალაციის შემდეგ:
ზემოაღნიშნული პითონის კოდი ახორციელებს და გამოაქვს დაშიფრული ბაიტის სტრიქონი. მაგრამ ყოველთვის, როცა სკრიპტს აწარმოებთ, შედეგი განსხვავებულია. Bcrypt იყენებს ამ მეთოდს, რათა დარწმუნდეს, რომ თითოეულ მომხმარებელს აქვს პაროლი, რომელიც სპეციალურად არის დაშიფრული.
სხვათა შორის, ეს არის პაროლის დაშიფვრისთვის.
პაროლის შედარება და დადასტურება Bcrypt-ის გამოყენებით
რა მოხდება, თუ გსურთ შეინახოთ გაშიშებული პაროლი და მოგვიანებით შეამოწმოთ, ემთხვევა თუ არა ის იმ პაროლს, რომელიც მომხმარებელმა წარადგინა ავტორიზაციისთვის?
ეს მარტივია. მხოლოდ ავთენტიფიკაციის პაროლი უნდა შევადაროთ მონაცემთა ბაზის ჩანაწერს (ამ შემთხვევაში ან მეხსიერებაში).
ავთენტიფიკაციის პაროლი ასევე უნდა იყოს კოდირებული, სანამ შევადარებთ მას მონაცემთა ბაზაში, რადგან bcrypt-ს შეუძლია მხოლოდ ბაიტის სტრიქონების წაკითხვა. ძირითადად, თქვენ შეადარებთ დაშიფრულ ავთენტიფიკაციას დაშიფრულ პაროლს, რომელიც ამჟამად გაქვთ თქვენს მონაცემთა ბაზაში.
მოდით შევამოწმოთ ეს პითონის ფიქტიური შეყვანის გამოყენებით:
ზემოაღნიშნული კოდის გაშვებისას თქვენ მოგეთხოვებათ ახალი პაროლი. ეს მეხსიერებაში ინახება პითონის მიერ. ავტორიზაციის განყოფილებაში, თქვენ შეიყვანთ იმავე პაროლს, რომელიც თქვენთვის პირადია.
თუ პაროლი შედარებულია და ის, რომელიც ადრე იყო დაშიფრული და შენახული მატჩი, Python გამოსცემს წარმატების შეტყობინებას.
თუ არა, შეცდომის შეტყობინება იბეჭდება და შემდეგ ემატება სხვა წინადადება.
ფუნდამენტური იდეა იდენტურია რეგისტრაციისა და შემდეგ პაროლის მონაცემთა ბაზაში ავტორიზაციისთვის.
დასკვნა
მაშინაც კი, როცა ჩვენ უბრალოდ გამოვიყენეთ დაშიფრული პაროლები იმის საჩვენებლად, თუ როგორ ფუნქციონირებს bcrypt უბრალო Python მოკლე მეხსიერებაში, მისი რეალური გამოყენებადია მომხმარებლის ბაზის აპებში.
მიუხედავად ამისა, ეს სტატია აჩვენებს თქვენი კოდის ორგანიზების აუცილებელ მეთოდებს ამის განსახორციელებლად, თუნდაც რეალურ გარემოებებში.
მაგალითად, თუ თქვენ იყენებთ Flask-ს, შეგიძლიათ მიუთითოთ რეგისტრაციისა და ავთენტიფიკაციის ველები ცალკე ვებ ფორმების საშუალებით, შეყვანის ნაცვლად.
რა თქმა უნდა, პაროლების შედარებისას თქვენ წაიკითხავთ მონაცემთა ბაზიდან, რომელიც შეიცავს დაშიფრულ პაროლებს, რომლებიც ინახება რეალურ სამყაროში.
იონა ნიჩი
გმადლობთ ამ მარტივი და მარტივი ახსნისთვის,
ეს ძალიან დამეხმარა ჩემს ამჟამინდელ პროექტში.
ვფიქრობ, ძალიან კარგია, რომ მაგალითის კოდი შემოიფარგლება მინიმალური მინიმალური რაოდენობით და არ არის გადატვირთული, როგორც სხვა მრავალი ახსნა.
საუკეთესო სურვილებით