Hash Value

Giá trị có độ dài cố định được tạo từ dữ liệu có độ dài tùy ý bằng hàm băm. Dùng để xác minh toàn vẹn dữ liệu và phát hiện giả mạo.

Giá trị băm là đầu ra có độ dài cố định được tạo bằng cách áp dụng hàm băm cho dữ liệu đầu vào có độ dài tùy ý. Cùng một đầu vào luôn tạo ra cùng một giá trị băm, trong khi đảo ngược quá trình để khôi phục dữ liệu gốc là không khả thi về mặt tính toán. Tính chất một chiều này là đặc điểm xác định của hàm băm và tạo nền tảng cho các công nghệ bảo mật và xác minh dữ liệu.

Các thuật toán băm phổ biến bao gồm MD5 (đầu ra 128-bit), SHA-1 (160-bit), SHA-256 (256-bit) và SHA-3. MD5 được thiết kế năm 1991 và sử dụng nhiều năm, nhưng tấn công va chạm được chứng minh năm 2004, khiến nó không phù hợp cho mục đích bảo mật. SHA-1 cũng bị xâm phạm tương tự khi Google tạo ra va chạm thực tế năm 2017. Ngày nay, SHA-256 hoặc thuật toán mạnh hơn được khuyến nghị. Sách nhập môn mật mã học cung cấp kiến thức có hệ thống về hàm băm.

Giá trị băm được áp dụng trong nhiều lĩnh vực. Đối với lưu trữ mật khẩu, lưu giá trị băm thay vì văn bản thuần giảm rủi ro lộ mật khẩu gốc ngay cả khi cơ sở dữ liệu bị xâm phạm. Trong thực tế, thêm salt (chuỗi ngẫu nhiên) trước khi băm là tiêu chuẩn, và các thuật toán chuyên dụng như bcrypt và Argon2 được khuyến nghị. Đối với xác minh toàn vẹn tệp, so sánh giá trị băm của tệp tải xuống với giá trị chính thức phát hiện giả mạo hoặc hỏng.

Trong công nghệ blockchain, giá trị băm đóng vai trò trung tâm. Mỗi khối chứa giá trị băm của khối trước, tạo thành cấu trúc chuỗi. Thay đổi dữ liệu quá khứ thay đổi tất cả giá trị băm tiếp theo, giúp phát hiện gian lận. Quản lý phiên bản Git cũng sử dụng giá trị băm SHA-1 để xác định commit và tệp.

Một quan niệm sai lầm phổ biến là "băm giống với mã hóa". Mã hóa là quá trình có thể đảo ngược sử dụng khóa để khôi phục dữ liệu gốc, trong khi băm là không thể đảo ngược. Một quan niệm sai lầm khác là giá trị băm giống nhau đảm bảo dữ liệu nguồn giống nhau. Hiện tượng các đầu vào khác nhau tạo ra cùng giá trị băm được gọi là va chạm, và khả năng chống va chạm là thước đo quan trọng để đánh giá bảo mật thuật toán băm. Sách kỹ thuật bảo mật cung cấp hiểu biết sâu hơn về ứng dụng thực tế.

Từ góc độ đếm ký tự, giá trị băm luôn được biểu diễn dưới dạng chuỗi thập lục phân có độ dài cố định. MD5 tạo ra 32 ký tự, SHA-256 tạo ra 64 ký tự, và độ dài đầu ra được xác định duy nhất bởi thuật toán. Dù đầu vào là một ký tự đơn hay tệp 1 GB, số ký tự đầu ra vẫn không đổi. Tính chất độ dài cố định này mang lại lợi thế thực tế trong thiết kế cột cơ sở dữ liệu và lập kế hoạch định dạng log, vì yêu cầu lưu trữ có thể được xác định trước.