Computer >> Máy Tính >  >> Lập trình >> Lập trình

Hoạt động của Hashing là gì?

Hashing là thủ tục diễn giải một khóa nhất định thành một mã. Một hàm băm được sử dụng để thay thế dữ liệu bằng một mã băm mới được tạo. Hơn nữa, băm là thực hành lấy một chuỗi hoặc khóa đầu vào, một biến được tạo để lưu thông tin chính trị và xác định nó bằng giá trị băm, thường được quyết định bởi một thuật toán và tạo một chuỗi ngắn hơn nhiều so với ban đầu.

Hashing thường là một hàm mật mã một chiều. Bởi vì hàm băm không thể thay đổi được, việc hiểu đầu ra của phương thức băm không cho phép chúng tôi tạo lại nội dung của tệp. Nó cho phép chúng tôi đánh giá xem hai tệp có giống nhau hay không mà không cần hiểu nội dung của chúng.

Việc sử dụng hàm băm trong bảo mật thông tin và xác thực internet là một thông lệ phổ biến. Ví dụ:nó có thể được sử dụng để lưu mật khẩu một cách an toàn trong cơ sở dữ liệu, nhưng cũng có thể cung cấp bảo mật cho các yếu tố thông tin khác bao gồm tệp và tài liệu.

Cấu trúc dữ liệu băm cho phép các mảng tìm kiếm và lưu trữ thông tin một cách hiệu quả, hỗ trợ một cấu trúc hiệu quả cho việc tìm kiếm và lưu trữ thông tin. Giả sử rằng nó có thể có một danh sách 20.000 số và nó được yêu cầu tìm kiếm một số cụ thể trong danh sách đó và nó có thể quét từng số trong danh sách để xem nó có khớp với số mà nó được nhập hay không.

Hashing là quy trình chuyển đổi một chuỗi ký tự thành một giá trị thường xuyên và có độ dài cố định. Lý do tại sao sử dụng khóa băm để tìm kiếm phần tử trong cơ sở dữ liệu là việc khám phá mục bằng giá trị ban đầu của nó tốn nhiều thời gian hơn so với việc sử dụng khóa băm ngắn hơn.

Nó có thể được sử dụng để định vị hoặc lưu trữ các phần tử một cách hiệu quả trong bộ sưu tập khi tìm kiếm chúng. Ví dụ:nếu nó có thể có một danh sách 10.000 từ tiếng Anh và muốn kiểm tra xem một từ nhất định có nằm giữa chúng hay không, thì sẽ không hiệu quả nếu so sánh từ đã cho với tất cả 10.000 mục cho đến khi tìm thấy một từ phù hợp.

Một mảng có thể được lập chỉ mục bởi các giá trị của các khóa của một phạm vi, được gọi là băm. Toán tử modulo sẽ được sử dụng để lấy một loạt các giá trị khóa. Trong trường hợp này, nó có thể lưu trữ các mục sau trong bảng băm 20x20. Mỗi mục được định dạng asa (khóa, giá trị).

Các thuật toán băm bao gồm MD5, SHA-1, SHA-2, NTLM và LANMAN được sử dụng chung trong thế giới ngày nay. Thông báo thông báo được chia thành 5 phiên bản, phiên bản này là MD5. Trước đây, MD5 là một trong những thuật toán băm nổi tiếng nhất. MD5 cần 128 bit cho các đầu ra của nó.

Khi băm, mỗi bit trong khối dữ liệu được chuyển thành giá trị chuỗi bit có kích thước cố định. Một tệp bao gồm các khối dữ liệu. Có một rủi ro rằng hai đầu vào nhiều sẽ tạo ra giá trị băm cùng tên. Đây được gọi là xung đột, xuất hiện khi hai đầu vào hỗ trợ cùng một giá trị băm.