روش مناسب هش کردن کلمه عبور

الگوریتم ها و تابع های زیادی برای hash کردن وجود داره و همچنین نکاتی هستن که در زمان Hash کردن باید به اون ها توجه کرد، مثل افزودن salt.

یکی از توابع pssword_hash() هست که کار کردن با اون بسیار آسون هست و همچنین از الگوریتم bcrypt استفاده میکنه که یکی از قوی ترین الگوریتم های موجود هست.

نکته جالب در مورد این تابع اینه که خودش بصورا خودکار salt رو تولید میکنه.

برای مقایسه رشته هش شده با رشته اصلی باید از تابع password_verify() استفاده بشه.

 

*** هنگام استفاده از این تابع باید توجه داشته باشین که ورژن php حداقل 5.5 باشه و نکته مهم دیگه این که این تابع در آینده ممکنه از الگوریتم دیگه ای استفاده کنه.

 

روش استفاده از password_hash()

echo password_hash("123",PASSWORD_DEFAULT);
//output: $2y$10$Q7fH6tG.LPyofdLDtUQZPOzzDFka4OrzaDvnR.erYpvPLXo4taUwa

 

پارامتر دوم یک ثابت هست که الگوریتم رو مشخص میکنه، همونطور که گفتم در حال حاظر از bcrypt به عنوان پیش فرض استفاده میشه.

 

شیوه مقایسه رشته هش شده با رشته ورودی کاربر با password_verify

$hash = '$2y$10$Q7fH6tG.LPyofdLDtUQZPOzzDFka4OrzaDvnR.erYpvPLXo4taUwa';
if (password_verify('123', $hash)) {
//verified
}

 

داکیومنت php

password_hash

password_verify