12/08/2018, 15:55

Mật khẩu người dùng được Devise lưu và bảo mật như thế nào.

I.Devise gem và và bcrypt Hiện nay với các ứng dụng sử dụng Framework Rails, chúng ta thường sử dụng gem devise cho module đăng kí, đăng nhập ( Devise hiện tại đang là gem được sử dụng nhiều nhất cho tính năng đăng nhập, theo thống kê năm 2016). Với module mã hóa mật khẩu người dùng và kiểm tra ...

I.Devise gem và và bcrypt Hiện nay với các ứng dụng sử dụng Framework Rails, chúng ta thường sử dụng gem devise cho module đăng kí, đăng nhập ( Devise hiện tại đang là gem được sử dụng nhiều nhất cho tính năng đăng nhập, theo thống kê năm 2016). Với module mã hóa mật khẩu người dùng và kiểm tra mật khẩu đăng nhập, Devise mặc định sử dụng bcrypt. Sơ qua về bcrypt, Bcrypt là một chức năng mã hóa mật khẩu thiết kế bởi Niels Provos và David Mazières, dựa trên các thuật toán mã hóa Blowfish, và trình bày tại USENIX trong năm 1999.Bcrypt là một thuật toán mã hóa một chiều. Bạn không thể lấy lại mật khẩu khi đã biết chuỗi mật khẩu trong dữ liệu databse trước đó mà bạn hay bất kỳ ai tấn công vào để đánh cắp.

Trong bài viết hôm nay, chúng ta cùng xem xét bcrypt hoạt động như thế nào, mật khẩu chúng ta được mã hóa và lưu trữ ra sao. II.Salt là gì? Tác dụng của salt trong bcrypt Với các website cũ sử dụng các thuật toán MD5 hoặc SHA1, cách thức module đăng nhập thường hoạt động như sau:

  1. User đăng ký tài khoản, password user được hash (bằng MD5 hoặc SHA1) và lưu vào database
  2. Lúc user đăng nhập, hash lại password mà user nhập vào rồi so sánh với password đã hash trong database, nếu trùng nhau thì login, không trùng thì bye bye             </div>
            
            <div class=
0