Tôi muốn đăng ký một địa chỉ email @ live.com, nhưng nó nói rằng nó không thể đăng ký một địa chỉ email có mật khẩu chứa hơn 16 ký tự.
Tại sao? Vì vậy, nó sẽ dễ dàng hơn để có được mật khẩu thực sự? (nếu băm mật khẩu bị đánh cắp ..)
Tôi muốn đăng ký một địa chỉ email @ live.com, nhưng nó nói rằng nó không thể đăng ký một địa chỉ email có mật khẩu chứa hơn 16 ký tự.
Tại sao? Vì vậy, nó sẽ dễ dàng hơn để có được mật khẩu thực sự? (nếu băm mật khẩu bị đánh cắp ..)
Câu trả lời:
Trên thực tế bởi vì khi bạn md5 một mật khẩu, nó sẽ tính toán một hàm băm. Sau đó, chuỗi dài hơn 16 ký tự, một số "băm" có thể va chạm giữa chúng.
Ví dụ, nếu md5("noroof")
đưa 9ce405c98406f2f6d5326ee6b51d19cd
ra, md5("ididntfixedmyroofwhenicould")
có thể có thể cung cấp cùng một hàm băm 9ce405c98406f2f6d5326ee6b51d19cd
. Hãy nhớ rằng băm được tạo bởi 32 ký tự của "0123456789abcdf" (đối với md5 trong trường hợp này).
Có thể họ buộc 16 ký tự vì thuật toán tính toán hàm băm đảm bảo sẽ không có xung đột trong cơ sở dữ liệu với mật khẩu đã lưu trước đó.