Độ dài tối đa của chuỗi có thể có băm md5 là bao nhiêu? Hoặc: Nếu nó không có giới hạn, và nếu vậy thì độ dài tối đa của giá trị đầu ra md5 sẽ là bao nhiêu?
Độ dài tối đa của chuỗi có thể có băm md5 là bao nhiêu? Hoặc: Nếu nó không có giới hạn, và nếu vậy thì độ dài tối đa của giá trị đầu ra md5 sẽ là bao nhiêu?
Câu trả lời:
MD5 xử lý một thông báo có độ dài tùy ý thành đầu ra có độ dài cố định 128 bit, thường được biểu diễn dưới dạng một chuỗi gồm 32 chữ số thập lục phân.
128 bits
= 16 bytes
=32 hex digits
Nối chiều dài
Một đại diện 64 bit của b (độ dài của thông báo trước khi các bit đệm được thêm vào) được thêm vào kết quả của bước trước đó. Trong trường hợp không chắc là b lớn hơn 2 ^ 64, thì chỉ sử dụng 64 bit thứ tự thấp của b.
Xem thêm tại đây .
MD5("how many characters exactly?");
Bạn có thể có bất kỳ độ dài nào, nhưng tất nhiên, có thể có vấn đề về bộ nhớ trên máy tính nếu đầu vào Chuỗi quá dài. Đầu ra luôn là 32 ký tự.
block
byte của đầu vào có sẵn tại một thời điểm.
Thuật toán đã được thiết kế để hỗ trợ độ dài đầu vào tùy ý. Tức là bạn có thể tính băm các tệp lớn như ISO của DVD ...
Nếu có giới hạn cho đầu vào, nó có thể đến từ môi trường sử dụng hàm băm. Giả sử bạn muốn tính toán một tệp và môi trường có giới hạn MAX_FILE.
Nhưng chuỗi đầu ra sẽ luôn giống nhau: 32 ký tự hex (128 bit)!
Băm MD5 128 bit được biểu diễn dưới dạng một chuỗi gồm 32 chữ số thập lục phân.
Bạn có thể muốn sử dụng SHA-1 thay vì MD5 , vì MD5 được coi là bị hỏng.
Bạn có thể đọc thêm về các lỗ hổng MD5 trong bài viết Wikipedia này .
Không có giới hạn cho đầu vào của md5 mà tôi biết. Một số triển khai yêu cầu toàn bộ đầu vào được tải vào bộ nhớ trước khi chuyển nó vào hàm md5 (nghĩa là việc thực hiện tác động lên một khối bộ nhớ, không phải trên một luồng), nhưng đây không phải là giới hạn của chính thuật toán. Đầu ra luôn là 128 bit. Lưu ý rằng md5 không phải là một thuật toán mã hóa, mà là một hàm băm mật mã. Điều này có nghĩa là bạn có thể sử dụng nó để xác minh tính toàn vẹn của một đoạn dữ liệu, nhưng bạn không thể đảo ngược quá trình băm. Cũng lưu ý rằng md5 được coi là bị hỏng, vì vậy bạn không nên sử dụng nó cho bất kỳ điều gì liên quan đến bảo mật (vẫn ổn để xác minh tính toàn vẹn của các tệp đã tải xuống và như vậy).