Máy tính mã băm MD2
Đã xuất bản: lúc 22:39:38 UTC 16 tháng 2, 2025
Máy tính mã băm sử dụng hàm băm Message Digest 2 (MD2) để tính toán mã băm dựa trên văn bản đầu vào hoặc tệp tải lên.MD2 Hash Code Calculator
Hàm băm MD2 (Message Digest 2) là hàm băm mật mã được Ronald Rivest thiết kế vào năm 1989. Nó được tối ưu hóa cụ thể cho máy tính 8 bit. Mặc dù hiện nay được coi là lỗi thời và không an toàn cho mục đích mật mã, nó vẫn được đưa vào đây trong trường hợp cần tính toán mã băm tương thích ngược. Không nên sử dụng nó khi thiết kế hệ thống mới.
Tiết lộ đầy đủ: Tôi không viết phần triển khai cụ thể của hàm băm được sử dụng trên trang này. Đây là một hàm chuẩn đi kèm với ngôn ngữ lập trình PHP. Tôi chỉ tạo giao diện web để công khai ở đây cho thuận tiện.
Về thuật toán băm MD2
Tôi ổn với toán học đơn giản, nhưng không thực sự giỏi và không có nghĩa là tôi coi mình là một nhà toán học, vì vậy tôi sẽ cố gắng giải thích cách hàm băm này hoạt động theo những thuật ngữ mà những người không phải là nhà toán học có thể hiểu được. Nếu bạn thích phiên bản toán học đầy đủ, bạn có thể dễ dàng tìm thấy ở nhiều nơi khác trên web ;-)
Bây giờ, hãy tưởng tượng bạn có một công thức nấu ăn lấy bất kỳ thành phần nào (thông điệp của bạn) và luôn biến chúng thành chính xác một thanh sô cô la nhỏ gồm 16 miếng (băm). Bất kể thành phần của bạn là gì hoặc chúng lớn hay nhỏ như thế nào, bạn sẽ luôn có cùng một thanh sô cô la có cùng kích thước.
Mục đích của công thức này là:
- Bạn không thể đoán được thành phần chỉ bằng cách nhìn vào sô-cô-la.
- Ngay cả một thay đổi nhỏ trong thành phần cũng khiến hương vị sô-cô-la hoàn toàn khác, do đó bạn sẽ biết được liệu có ai thay đổi thành phần hay công thức hay không.
Quá trình tạo ra thanh sô-cô-la gồm ba bước:
Bước 1: Làm đầy thông điệp (làm cho các thành phần phù hợp)
Giả sử bạn có một giỏ đựng đúng 16 quả táo (hoặc nguyên liệu). Nhưng nếu bạn chỉ có 14 quả táo thì sao? Bạn sẽ cần thêm 2 quả nữa để lấp đầy giỏ. Nếu bạn thiếu, bạn chỉ cần thêm táo. Ví dụ:
- Nếu bạn cần thêm hai quả nữa, hãy thêm hai quả táo.
- Nếu bạn có nhiều hơn 16, bạn cần phải đổ đầy thùng tiếp theo. Ví dụ, nếu bạn có 28, bạn thêm bốn để có được 32 (hai lần 16).
Điều này đảm bảo rằng mọi giỏ hàng đều đầy trước khi chúng ta chuyển sang bước tiếp theo.
Bước 2: Thêm Checksum (Danh sách thành phần bí mật)
Bây giờ, chúng ta tạo một danh sách thành phần bí mật dựa trên mọi thứ có trong giỏ hàng.
- Bạn kiểm tra từng giỏ, nhìn vào những quả táo và viết ra một mã bí mật cho mỗi quả.
- Đây không chỉ là một bản sao - nó giống như việc cộng các con số theo một cách kỳ lạ để ngay cả khi có ai đó lẻn vào và thay đổi một quả táo, danh sách vẫn sẽ trông sai.
Danh sách này giúp bạn kiểm tra lại xem các thành phần có bị thay đổi sau đó không.
Bước 3: Trộn tất cả lại với nhau (Máy xay sinh tố Magic Blender)
Bây giờ đến phần thú vị nhất - trộn!
- Bạn có máy xay sinh tố 48 khe.
- Bạn ném vào:
- Những quả táo (tin nhắn của bạn).
- Một ít hỗn hợp cũ từ trước (bắt đầu bằng hỗn hợp rỗng cho mẻ đầu tiên).
- Sự kết hợp của hai điều đầu tiên.
Sau đó, bạn trộn nó. Nhưng không chỉ một lần. Bạn trộn nó 18 lần, thay đổi tốc độ và hướng mỗi lần. Đây không phải là cách trộn bình thường - mỗi lần khuấy hỗn hợp theo một cách đặc biệt để ngay cả một quả táo khác nhau cũng làm cho toàn bộ sô cô la có hương vị khác nhau.
Thanh sô cô la cuối cùng (The Hash)
Sau khi trộn tất cả, bạn chỉ đổ ra 16 miếng hỗn hợp trên cùng. Đó là thanh sô cô la cuối cùng của bạn - MD2 hash. Nó trông không giống gì so với những quả táo ban đầu, và nếu bạn cố gắng đoán thành phần ban đầu chỉ từ sô cô la, bạn sẽ không bao giờ có thể đoán được.
Nhớ:
- Thành phần giống nhau = sô-cô-la giống nhau.
- Chỉ cần thay đổi một quả táo = một loại sô-cô-la hoàn toàn khác.
- Bạn không thể quay lại - bạn không thể tìm ra những quả táo ban đầu chỉ từ sô cô la.