Ở bài viết này mình sẽ trình bày về cơ chế lưu password vào trong database để đảm bảo tính an toàn của password, tìm hiểu qua một số cách tấn công password, và cuối cùng là tìm hiểu qua một vài thư viện để mã hóa password. 1. Kiến thức cơ sởBài viết sử dụng các kiến thức cơ bản về mã hóa, one-way function, two-way funtion: + One-way function: nhận input là plain text và output là message được mã hóa. Rất khó để có thể giải mã message này và thu được input ban đầu. Cách duy nhất ... »
TL;DR Sử dụng bcrypt. Tại sao không phải là {MD5, SHA1, SHA2, SHA3,...}? Các function trên đều là các hàm băm (hash) được sử dụng với mục đích chung, vốn được thiết kế để tính toán băm một lượng data rất lớn trong thời gian ngắn nhất có thể. Điều này có nghĩa là những hàm này rất tốt trong việc kiểm tra/đảm bảo tính toán vẹn của data nhưng lại hoàn toàn dở trong việc lưu trữ password. Một server hiện đại có thể tính toán khoảng 330MB MD5 hash mỗi giây. Nếu user của bạn lưu ... »
