Tôi đang học MySQL và PHP thông qua một cuốn sách tại thư viện. Tôi đã cải thiện sự an toàn của hệ thống mã hóa mật khẩu bằng cách thay đổi lưu trữ mật khẩu từCó thể trễ khi sử dụng NOW() trong truy vấn MySQL?
password=SHA('password')
để
password=SHA(CONCAT('password', '--', registration_date))
nơi registration_date
là dấu thời gian khi người dùng đăng ký.
Mã hiện cho người dùng đăng ký là:
INSERT INTO users (first_name, last_name, email, password, registration_date)
VALUES ('first_name', 'last_name', 'email', SHA(CONCAT('password', '--', NOW())), NOW());
Tôi có cần phải lo lắng về hai khác nhau NOW() chức năng trong đó? Có khả năng họ có thời điểm hơi khác nhau không? Tôi đã thử nó với một vài truy vấn và nó dường như làm việc ok.
Nếu có sự cố, làm cách nào để khắc phục sự cố?
Bạn tốt hơn, rất, rất, rất, rất, rất chắc chắn rằng trường registration_date không bao giờ có thể bao giờ được cập nhật. Nếu không, bạn sẽ thấy mình với sự thiếu hụt đột ngột của người dùng. –
@Larry - cũng sẽ áp dụng cho trường mật khẩu. :) –