Tôi đang bắt đầu một trang web và tôi đang cố gắng quyết định cách mã hóa mật khẩu người dùng để lưu trữ chúng trong cơ sở dữ liệu SQL.Cải thiện băm mật khẩu với một muối ngẫu nhiên
Tôi nhận thấy rằng việc sử dụng md5 (mật khẩu) đơn giản là rất không an toàn. Tôi đang xem xét sử dụng một sha512 (password.salt), và tôi đã nghiên cứu cách tốt nhất để tạo ra một muối hữu ích. Tôi đọc rất nhiều bài báo nói rằng một muối nên càng ngẫu nhiên càng tốt để thêm entropy vào băm và nó trông giống như một ý tưởng tuyệt vời. Nhưng:
- bạn cần lưu trữ muối ngẫu nhiên cùng với băm của bạn
- cho rằng kẻ tấn công bằng cách nào đó có quyền truy cập vào mật khẩu băm của bạn (và đang cố gắng để đảo ngược băm để plain text), nó có nghĩa là ông có thể bán cơ sở dữ liệu của bạn, sau đó có quyền truy cập vào các muối ngẫu nhiên của bạn cũng
Không rõ ràng là giá trị tìm kiếm lạ bên cạnh hàm băm trong cơ sở dữ liệu là một muối? Nếu kẻ tấn công có thể truy cập vào muối cùng với giá trị băm, làm thế nào là an toàn hơn?
Có ai có chuyên môn trong lĩnh vực đó không? Cảm ơn!
Đừng quên rằng sau khi tất cả điều này, bạn vẫn cần mật khẩu tốt. –
@PeeHaa: Người tấn công có cần bảng cầu vồng cho mỗi giá trị muối không? –
Một muối là có để ngăn chặn một cuộc tấn công bảng cầu vồng. Bây giờ kẻ tấn công sẽ phải tạo một bảng cầu vồng cho mỗi muối thay vì chỉ một cho tất cả các hồ sơ. – PeeHaa