چگونه password validation خوبی بنویسیم(Golang)


وقتی کاربر میخواهد وارد سایت یا اپلیکیشن ما شود اولین اقدام او ساختن نام کاربری و رمز ورود است و ما به عنوان برنامه نویس وظیفه داریم که مطمئن شویم پسوردی که او برای رمز انتخاب کرده اندازه کافی قوی است یا نه و در این مقاله سعی دارم نکاتی باید در نوشتن کد برای چک کردن رمز نیاز است بگم

اولین قدم پیدا کردن یک framework مناسب برای زبانتون هستش و من که شخصا زبانم گولنگ هست و framework خوبی که پیدا کردم wagslane هستش که لینکش براتون میزارم

https://github.com/wagslane/go-password-validator

دومین قدم، بررسی قدرت رمز است. قدرت رمز به معنای مدت زمانی است که برای شکستن آن لازم است. این مدت زمان را می‌توان از 0 تا 100 تعیین کرد. معمولاً قدرت رمز را بین 55 تا 65 تعیین می‌کنند. به عنوان مثال، رمز 12345678910 حدود 2 ثانیه طول می‌کشد تا شکسته شود، اما رمز 22@saLam??chO0 حدود 4 میلیارد سال طول می‌کشد. برای اینکه ببینید رمز شما چقدر طول می‌کشد، می‌توانید از سایت زیر استفاده کنید.

https://www.security.org/how-secure-is-my-password/

یکی دیگر از راه های چک کردن پسورد این است که مجموعه ای پسوردهای تکراری و شکننده را به برنامون بدیم و پسوردی که کاربر به ما میده رو با اون مقایسه کنیم و اگر جزو پسورد های شکننده بود اون رو قبول نکنیم برای مثال یک فایل که در آن 10 هزار پسورد شکننده هستش رو داخل برنامه گذاشتم و پسوردی که کاربر میده رو با اون مقایسه میکنم و لینک کامل فایل برنامه(هم استفاده از framework و هم استفاده از فایل) را در آخر این مقاله براتون میزارم و امیدوارم به کارتون بیاد

https://github.com/alireza-frj4/passValidation