Skip to main content

Máy tính băm là gì?

Máy tính băm có thể là một số điều, nhưng theo nghĩa rất rộng, đề cập đến một chương trình hoặc chức năng chấp nhận một số loại đầu vào và sau đó chạy đầu vào đó thông qua thuật toán để tạo giá trị đầu ra, chẳng hạn như một số lượng lớn hoặc một khốicủa các biểu tượng.Thuật ngữ này thường được sử dụng trong truyền dữ liệu để chỉ một chương trình tạo ra một loại khóa với thuật toán để bất kỳ ai nhận được dữ liệu được truyền đều có thể sử dụng cùng một thuật toán để có cùng một khóa để xem liệu dữ liệu có còn nguyên vẹn và không sửa đổi không.Trong lập trình máy tính, máy tính băm có thể được sử dụng để chỉ ra hàm băm biến một số loại dữ liệu thành phím băm sau đó được xử lý bởi một thuật toán khác để tạo chỉ mục thành một mảng trong đó thông tin có thể được lưu trữ.Mặc dù cả hai khái niệm của máy tính là tương tự nhau, kết quả rất khác nhau và thường không thể thay thế cho nhau.Một thuộc tính chung của máy tính băm, bất kể việc sử dụng nó là gì, là giá trị băm được tạo sẽ luôn luôn giống hệt nhau cho một phần dữ liệu nhất định, bất kể ở đâu hoặc khi nào chương trình được chạy.chỉ là một chương trình hoặc chức năng tạo ra một hàm băm từ một số dữ liệu.Một hàm băm chỉ là một từ cho một giá trị và có thể là bất cứ thứ gì từ một số đến một chuỗi hàng trăm ký tự chữ và số, tùy thuộc vào cách sử dụng nó.Dữ liệu được thêm vào máy tính băm để tạo hàm băm cũng có thể là hầu hết mọi thứ.Khi được sử dụng để kiểm tra lỗi trong truyền dữ liệu, nguồn cho giá trị băm thường là một tài liệu hoặc tệp dữ liệu hoàn chỉnh, chẳng hạn như email hoặc tệp hình ảnh.Trong lập trình, vì giá trị băm được sử dụng để xác định nơi các bản ghi dữ liệu được lưu trong bảng băm, giá trị đầu vào thường là một phần của bản ghi dữ liệu duy nhất, chẳng hạn như họ của một người, số điện thoại hoặc một số điện thoạiSố tài khoản. Trong trường hợp truyền dữ liệu, máy tính băm sử dụng bất kỳ một trong hàng trăm thuật toán toán học khác nhau để tạo giá trị băm duy nhất cho thông tin được truyền.Đây có thể là một cái gì đó đơn giản như thêm tất cả các giá trị của tất cả các byte trong một tệp, trong trường hợp giá trị băm là tổng.Nó cũng có thể phức tạp hơn nhiều, liên quan đến việc đếm các khối bit hoặc xử lý dự phòng các chuỗi số khác nhau.Tuy nhiên, một trong những khía cạnh quan trọng nhất của bất kỳ thuật toán băm nào là giá trị băm kết quả phải luôn giống nhau nếu cùng một dữ liệu được sử dụng làm đầu vào.Khái niệm này có nghĩa là, nếu một tệp được truyền với giá trị băm được tính toán của chính nó, thì máy thu của dữ liệu có thể sử dụng máy tính băm có cùng thuật toán để xác định xem các giá trị băm để khớp dữ liệu, xác minh rằng dữ liệu đã nhận đượcvà không có lỗi hoặc thay đổi. Trong lập trình, thuật ngữ máy tính băm thường được sử dụng để mô tả một hàm chuyển đổi một đoạn mốc thành giá trị băm.Không giống như truyền dữ liệu, số được tạo bởi máy tính trong trường hợp này không nhất thiết phải được sử dụng để xác minh nhưng để tính toán chỉ số vào bảng băm nơi thông tin sẽ được lưu trữ.Giá trị băm trung gian được tính toán để cho phép số lượng hồ sơ dữ liệu lớn hơn được dự đoán sẽ được dự đoán vào bảng băm nhỏ hơn, với một số bản ghi tạo ra cùng một giá trị trong một số trường hợp nhất định.Cả hai thuật toán được sử dụng để tính giá trị băm và dữ liệu được sử dụng làm đầu vào đều khá tùy tiện cho bảng băm và thường là cụ thể của ứng dụng.