Skip to main content

Băm là gì?

Các băm là các công thức toán học lấy một chuỗi dữ liệu có độ dài thay đổi, thường ở dạng văn bản và chuyển đổi nó thành các giá trị số ngắn hơn, có độ dài cố định.Băm được sử dụng thường xuyên trong cơ sở dữ liệu máy tính để làm cho các tìm kiếm nhanh hơn và hiệu quả hơn.Chúng cũng được sử dụng trong mã hóa để đảm bảo rằng mật khẩu không bị xâm phạm và để xác thực chữ ký số, trong số các mục đích sử dụng khác.Các băm cũng được đặt theo tên của các hàm băm và cũng có thể được coi là thuật toán. Băm đóng vai trò lớn trong việc tạo điều kiện tìm kiếm cơ sở dữ liệu.Ví dụ, trong một cơ sở dữ liệu bao gồm các tên, nếu người dùng tìm kiếm cho John John Doe, thì máy tính sẽ phải khớp với tất cả các ký tự trong tìm kiếm cho mọi mục nhập cơ sở dữ liệu.Mỗi nhân vật trong tên sẽ có 26 khả năng khác nhau mdash;Các chữ cái của bảng chữ cái tiếng Anh mdash;Mặc dù độ dài thay đổi của các mục cũng sẽ làm chậm tìm kiếm. Ngược lại, việc áp dụng hàm băm sẽ giúp cuộc sống của máy tính dễ dàng hơn nhiều.Biến từng chuỗi văn bản thành một loạt các số sẽ đơn giản hóa việc tìm kiếm, bởi vì máy tính sẽ chỉ có mười khả năng để kiểm tra từng ký tự: chữ sốĐộ dài cố định của chuỗi số cũng giúp máy tính thực hiện công việc của mình hiệu quả hơn.Trong một cơ sở dữ liệu có hàm băm được áp dụng, tất cả các mục đều có một số tương ứng, duy nhất.Điều này được gọi là phím băm.Trong trường hợp này, khi bạn thực hiện tìm kiếm, trước tiên máy tính áp dụng hàm băm cho đầu vào mà bạn đã viết, chẳng hạn như là John John Doe.Điều này dẫn đến một giá trị số, ví dụ như 456789.Máy tính sau đó có thể nhanh chóng khớp kết quả này với phím băm tương ứng với mục nhập chính xác. Băm cũng hoạt động như chữ ký số.Ví dụ, người gửi, Robert, muốn gửi một tài liệu cho ai đó và người nhận, Mary, muốn đảm bảo rằng tài liệu đã không bị giả mạo khi đang trên đường.Người gửi, Robert, chỉ phải chạy tài liệu thông qua hàm băm, dẫn đến giá trị số.Robert sau đó mã hóa khóa băm và gửi tài liệu cùng với khóa được mã hóa.Mary nhận được cả hai mặt hàng và giải mã khóa băm.Bây giờ cô ấy có thể thấy giá trị số kết quả từ tài liệu trước khi nó được gửi.Để xác minh rằng tài liệu trong tay cô ấy là chính xác, cô ấy chạy tài liệu thông qua chức năng băm trên máy tính của mình.Cuối cùng, cô so sánh cả hai chìa khóa.Nếu chúng giống nhau, thì tài liệu đã được thay đổi trên đường đến người nhận.Nhiều chức năng băm khác nhau tồn tại, mỗi hàm có các công thức toán học riêng.Để hàm băm hoạt động, nó phải giảm thiểu bất kỳ va chạm nào xảy ra khi hai mục cơ sở dữ liệu có cùng khóa băm.Các chức năng băm cũng phải là một chiều.Điều đó có nghĩa là bạn có thể tạo một khóa từ mục nhập cơ sở dữ liệu hoặc tài liệu, nhưng không phải là cách khác.Nói cách khác, bạn không thể thiết kế ngược lại tài liệu gốc từ khóa băm của nó.