tooliv

Tạo Hash

Tạo hash MD5, SHA-1, SHA-256, SHA-512

MD5
SHA-1
SHA-256
SHA-512

Tạo Hash

MD5 còn dùng được không?

Không cho mục đích bảo mật (mật khẩu, xác thực). Vẫn ổn cho các dùng không bảo mật như tìm trùng lặp hay khóa cache khi va chạm có thể chấp nhận được.

Hash có giống mã hóa không?

Không. Mã hóa có thể giải mã với khóa đúng; hash là một chiều và không thể đảo ngược. "Giải mã hash" về nguyên tắc là bất khả thi.

Cùng văn bản luôn cho cùng hash không?

Có, hash có tính tất định (cùng đầu vào → cùng đầu ra). Một khoảng trắng hay thay đổi chữ hoa thường tạo ra hash hoàn toàn khác (hiệu ứng tuyết lở).

Hàm băm là gì?

Hàm băm chuyển đổi dữ liệu có độ dài bất kỳ thành chuỗi độ dài cố định (digest) theo chiều một chiều. MD5(128-bit), SHA-1(160-bit), SHA-256(256-bit), SHA-512(512-bit) là các thuật toán phổ biến. Cùng một đầu vào luôn cho cùng một đầu ra, nhưng không thể tính ngược từ đầu ra để lấy đầu vào.

Tại sao MD5 và SHA-1 bị coi là "bị phá vỡ"?

MD5 và SHA-1 đã được chứng minh có lỗ hổng tấn công va chạm (collision attack — hai đầu vào khác nhau tạo cùng một hash), không còn được khuyến nghị cho bảo mật. SHA-256 và SHA-512 vẫn an toàn. Tuy nhiên, băm mật khẩu nên dùng bcrypt hay Argon2 vì chúng được thiết kế có chủ đích để chạy chậm.

Xác minh tính toàn vẹn tệp

Sau khi tải xuống, so sánh SHA-256 checksum với giá trị chính thức để xác minh tệp chưa bị giả mạo. Phương pháp này phổ biến với ISO Linux và trình cài đặt phần mềm. "Hiệu ứng tuyết lở" (avalanche effect) có nghĩa là chỉ 1 bit thay đổi cũng tạo ra hash hoàn toàn khác.

Tại sao không dùng SHA-256 lưu mật khẩu

SHA-256 quá nhanh — đó là vấn đề. GPU hiện đại có thể tính hàng tỷ hash SHA-256 mỗi giây, khiến tấn công brute-force dễ dàng. bcrypt và Argon2 được thiết kế có chủ đích để chậm và tốn bộ nhớ, đồng thời kết hợp salt khiến cùng mật khẩu tạo ra hash khác nhau.

Blockchain và hàm băm

Proof-of-Work của Bitcoin yêu cầu thợ đào tìm nonce sao cho SHA-256 kép bắt đầu bằng số lượng zero nhất định. Mỗi block chứa hash của block trước, tạo thành chuỗi. Sửa đổi bất kỳ giao dịch lịch sử nào sẽ thay đổi hash của tất cả block tiếp theo, bất kỳ node nào cũng phát hiện được ngay.

Câu hỏi thường gặp

MD5 còn dùng được không?

Không cho mục đích bảo mật (mật khẩu, xác thực). Vẫn ổn cho các dùng không bảo mật như tìm trùng lặp hay khóa cache khi va chạm có thể chấp nhận được.

Hash có giống mã hóa không?

Không. Mã hóa có thể giải mã với khóa đúng; hash là một chiều và không thể đảo ngược. "Giải mã hash" về nguyên tắc là bất khả thi.

Cùng văn bản luôn cho cùng hash không?

Có, hash có tính tất định (cùng đầu vào → cùng đầu ra). Một khoảng trắng hay thay đổi chữ hoa thường tạo ra hash hoàn toàn khác (hiệu ứng tuyết lở).

Công cụ liên quan