Hướng dẫn mã hóa password nodejs
Mình không thực sự hiểu nhiều về các thuật toán, kĩ thuật mã hóa mật khẩu. Mình chỉ đọc qua một số phương pháp mã hóa và các lời bình về nó trên mạng và quyết định sử dụng Show Bạn nào quan tâm thì có thể tìm hiểu thêm ở bài viết How To Safely Store A Password và bài báo khoa học A Future-Adaptable Password Scheme - 1999 USENIX Annual Technical Conference này nhé. Cũng thông qua bài này, mình mong rằng có bạn nào hiểu về kĩ thuật mã hóa có thể chỉ giáo cho mình rõ hơn vì bản thân có tìm hiểu nhưng chẳng hiểu gì :(( Giờ đi vào code thôi ^^. Vì Đầu tiên là cài gói này ứng dụng đã:
Gói này hỗ trợ cả 2 phương thức là bất đồng bộ và đồng bộ nhưng vì thời gian mã hóa có thể lâu nên phương thức bất đồng bộ được gợi ý sử dụng hơn cả. Trong bài viết này sẽ đề cập tới cả 2 phương thức đó. Bất đồng bộ
Đồng bộ
2 đoạn mã trên sau khi thực thi sẽ cho kết quả như sau:
Với Để tìm hiểu thêm về các API của gói này bạn có thể tham khảo tại đây. Mã hóa mật khẩu người dùng trước khi lưu vào database là 1 chuyện bắt buộc phải làm đối với bất cứ 1 website nào. Không riêng gì ai, Nodejs cũng hỗ trợ khá nhiều thư viện để hỗ trợ việc mã hóa này. bcrypt.jsBcrypt được sử dụng khá nhiều, ban đầu được thiết kế bởi Niels Provos và David Mazières, xem thêm thông tin tại wikipedia. Cài đặtCách sử dụngasync (recommended):Để mã hóa mật khẩu
Để kiểm tra mật khẩu:
Auto-gen a salt and hash:
syncĐể mã hóa mật khẩu:
Để kiểm tra mật khẩu:
Auto-gen a salt and hash: Trong các bài toán đơn giản về tạo data cho chức năng đăng ký hoặc đăng nhập bằng Nodejs, password thường ở dạng String và có thể nhìn thấy trong database. Hôm nay, AllXOne sẽ giới thiệu cho các bạn một cách đơn giản để mã hóa password hay còn gọi là “Băm” password bằng cách sử dụng Bcrypt – một thuật toán mã hóa mật khẩu được thiết kế bởi Niels Provos and David Mazières. Băm là một tấm vé một
chiều để mã hóa dữ liệu. Hashing thực hiện chuyển đổi một chiều trên mật khẩu, biến mật khẩu thành một chuỗi khác, được gọi là mật khẩu băm. Đây là bài viết dành cho các bạn đã có những khái niệm cơ bản về JavaScript, Nodejs và MongoDB: Đảm bảo rằng bạn đã cài đặt phần mềm sau trên hệ thống của mình: Bước 1 : Tạo một dự án Nodejs mới và tiến hành cài đặt init Bước 2 : Cài đặt Express.js và Mongoose Bước 3 : Setup Express.js và kết nối nó với MongoDB bằng mongoose. Như vậy, chúng ta đã tạo một dự án mới trong MongoDB tên là Test và một máy chủ trên cổng 8000. Bước 4 Tiếp theo, tạo một thư mục app, trong đó chứa các components con là controller, model, router Tại thư mục Model, tạo file userModel.js và thêm đoạn code sau:
Cài đặt bcrypt
Tại thư mục Controller, tạo file userController.js và thêm đoạn code sau:
Tại thư mục router, tạo file userRouter.js và thêm đoạn code sau:
Bước 5 : Chạy thử bằng Postman Chạy dự án bằng lệnh node index.js. Tạo người dùng mới với một email và mật khẩu bằng cách gửi yêu cầu Post tại Thự hiện đăng nhập bằng cách gửi yêu cầu Post tại Kết quả trong MogooDB sẽ như thế này: Chúc các bạn thành công. Cựu học viên Ironhack Việt Nam – Hiện là full-stack Developer tại All Xone |