Hàm băm ánh xạ dữ liệu có kích thước bất kỳ thành một giá trị có kích thước cố định. Cùng một đầu vào luôn tạo ra cùng một đầu ra. Thay đổi một bit và đầu ra sẽ thay đổi hoàn toàn. Thuộc tính đó làm cho hàm băm hữu ích cho việc kiểm tra tính toàn vẹn. Tải xuống một tệp và so sánh mã băm của nó với giá trị được công bố. Nếu chúng khớp nhau, tệp đã được tải về nguyên vẹn. Nếu không, có điều gì đó đã làm thay đổi nó.
Hàm băm là hàm một chiều. Bạn không thể truy ngược từ giá trị băm về dữ liệu gốc. Điều đó khiến chúng hữu ích cho việc lưu trữ mật khẩu. Hệ thống lưu trữ giá trị băm của mật khẩu, chứ không phải chính mật khẩu đó. Khi bạn đăng nhập, hệ thống sẽ băm những gì bạn đã nhập và so sánh nó với giá trị băm đã lưu trữ. Nếu cơ sở dữ liệu bị rò rỉ, kẻ tấn công sẽ nhận được giá trị băm chứ không phải mật khẩu. Mật khẩu yếu vẫn có thể bị bẻ khóa bằng bảng cầu vồng hoặc tấn công vét cạn, đó là lý do tại sao việc thêm muối lại quan trọng. Muối là dữ liệu ngẫu nhiên được thêm vào mỗi mật khẩu trước khi băm, vì vậy các mật khẩu giống nhau sẽ tạo ra các giá trị băm khác nhau. SHA-256 và SHA-3 là các hàm băm mật mã phổ biến. MD5 và SHA-1 đã bị bẻ khóa và không nên được sử dụng cho mục đích bảo mật. Hàm băm cũng được sử dụng trong blockchain, chữ ký số và chống trùng lặp tệp.
Thuộc tính của hàm băm
- Xác định — cùng một đầu vào, cùng một đầu ra
- Nhanh — tính toán nhanh
- Khả năng chống ảnh ngược — không thể đảo ngược
- Khả năng chống va chạm — khó tìm thấy hai đầu vào có cùng giá trị băm
Mã băm là dấu vân tay, không phải là mã hóa. Nó chứng minh tính toàn vẹn. Nó không che giấu dữ liệu.
Comments
No comments yet. Be the first to share a thought.
Leave a comment