Một article mà tôi stumbled khi ở đây trong các liên kết SO cung cấp cho other articles do đó cung cấp các liên kết đến evenmorearticles, vvLàm cách nào để lưu trữ mật khẩu * chính xác *?
Và cuối cùng tôi đã rời hoàn toàn bối rối - như vậy là gì các cách tốt nhất để lưu trữ mật khẩu trong DB? Từ những gì tôi có thể đặt lại với nhau, bạn nên:
- Sử dụng một muối dài (ít nhất 128 bit ngẫu nhiên), được lưu trữ trong bản rõ bên cạnh mật khẩu;
- Sử dụng nhiều lần lặp lại SHA-256 (hoặc mức SHA lớn hơn) trên mật khẩu muối.
Nhưng ... tôi càng đọc về mật mã càng hiểu rằng tôi không thực sự hiểu bất cứ điều gì và những điều tôi nghĩ là đúng trong nhiều năm thực sự là không đúng. Có chuyên gia nào về đề tài này ở đây không?
Đã thêm: Dường như một số người thiếu điểm. Tôi lặp lại liên kết cuối cùng ở trên. Điều đó sẽ làm rõ mối quan tâm của tôi.
https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2007/july/enough-with-the-rainbow-tables-what-you-need-to-know-about-secure-password-schemes/
Bạn đã hiểu chính xác. Không lưu trữ mật khẩu - lưu trữ băm mật khẩu. Câu hỏi thực sự của bạn là gì? Phần nào của muối và băm là khó hiểu? Hay bạn không hài lòng vì điều này mới mẻ đối với bạn? Bạn đã tìm thấy lời khuyên mâu thuẫn nào? –
là điều này để xác thực người dùng trong chương trình của riêng bạn hoặc bạn đang tìm cách tạo trình quản lý mật khẩu mà bạn cần trả lại mật khẩu? – Audioillity
Không có câu trả lời 'chính xác'. Mức độ bảo mật phụ thuộc rất nhiều vào ngữ cảnh của ứng dụng. Một máy bị cô lập (không kết nối vật lý với mạng) có thể có ít mật khẩu hơn so với cơ sở dữ liệu trên web. Sau đó, một lần nữa, cơ sở dữ liệu của bạn sẽ không bao giờ được truy cập trực tiếp vào mạng, nên luôn có một lớp truy cập giữa người dùng và cơ sở dữ liệu. Và băm/mật khẩu của mật khẩu là vô ích nếu mật khẩu được gửi đến cơ sở dữ liệu/lớp truy cập ở định dạng văn bản thuần túy. – Skizz