Tôi đang làm việc trên một hệ thống đã được băm mật khẩu người dùng với MD5 (không có muối). Tôi muốn lưu trữ mật khẩu an toàn hơn bằng cách sử dụng SHA-512 và một muối.Sử dụng SHA-512 và muối để băm mật khẩu băm MD5?
Mặc dù điều này đủ dễ thực hiện cho mật khẩu trong tương lai, tôi cũng muốn trang bị thêm mật khẩu băm MD5 hiện có, tốt nhất là không buộc tất cả người dùng phải thay đổi mật khẩu của họ. Ý tưởng của tôi là chỉ sử dụng SHA-512 và một muối thích hợp để băm băm MD5 hiện có. Sau đó, tôi có thể đặt một số cờ trong cơ sở dữ liệu cho biết mật khẩu nào đã được băm từ văn bản thuần túy và những mật khẩu nào được băm từ một băm MD5. Hoặc tôi chỉ có thể thử cả khi xác thực người dùng. Hoặc thậm chí chỉ cần băm mật khẩu mới với MD5 và sau đó SHA-512/muối, để chúng có thể được xử lý giống như mật khẩu cũ.
Theo lập trình, tôi không nghĩ đây là vấn đề, nhưng tôi không biết đủ về mã hóa/băm để biết liệu tôi có ảnh hưởng đến chất lượng của băm theo bất kỳ cách nào bằng cách áp dụng SHA-512/băm muối vào mật khẩu đã được MD5 băm. Bản năng đầu tiên của tôi là nếu có bất cứ điều gì, nó sẽ mạnh mẽ hơn, một chiếc chìa khóa rất nhẹ kéo dài.
Bản năng thứ hai của tôi là tôi không thực sự biết những gì tôi đang nói, vì vậy tôi nên nhận được lời khuyên. Có suy nghĩ gì không?
SHA-512 sẽ cung cấp cải tiến rất ít so với MD5 (ví dụ: 'MD5 (muối + mật khẩu)' thực tế tương đương với 'SHA512 (muối + mật khẩu)'). Chức năng băm mục đích chung như MD5 và gia đình SHA đã được ** không ** được xây dựng để lưu trữ mật khẩu. Sử dụng bcrypt. – NullUserException
Rất đúng. Tôi thực sự có ý định làm chìa khóa kéo dài, nhưng không làm rõ điều đó trong câu hỏi của tôi. Tôi đã kết thúc bằng cách sử dụng PBKDF2 thay vì ngây thơ thực hiện thuật toán kéo dài khóa của riêng tôi. –