Bảng băm được cho là cách nhanh nhất/tốt nhất để lưu trữ/truy xuất dữ liệu.Cách viết hàm băm trong C?
sự hiểu biết của tôi về một bảng băm, băm như sau (Xin vui lòng sửa tôi nếu tôi sai hoặc Vui lòng thêm Nếu có bất cứ điều gì nhiều hơn):
- Một Hash Table là gì, nhưng một mảng (một hoặc nhiều chiều) để lưu trữ các giá trị.
- Hashing là quá trình tìm chỉ mục/vị trí trong mảng để chèn/truy xuất dữ liệu. Bạn lấy một (các) mục dữ liệu và chuyển nó thành một khóa (s) cho hàm băm và bạn sẽ nhận được chỉ mục/vị trí để chèn/lấy dữ liệu.
Tôi có một câu hỏi:
Là hàm băm dùng để lưu trữ/lấy dữ liệu từ một KHÁC hàm băm mật mã được sử dụng trong ứng dụng bảo mật để xác thực như MD5, HMAC, SHA-1, vv ..?
Chúng khác nhau theo cách nào?
- Cách viết hàm băm trong C?
- Có một số tiêu chuẩn hoặc nguyên tắc cho nó không?
- Làm cách nào để đảm bảo rằng đầu ra của hàm băm tức là, chỉ mục không nằm ngoài phạm vi?
Thật tuyệt vời nếu bạn có thể đề cập đến một số liên kết tốt để hiểu những điều này tốt hơn.
Phạm vi có thể bị giới hạn với toán tử mô-đun (%). – tur1ng
Trang tiếp theo có một số triển khai chức năng băm mục đích chung được triển khai trong C (và nhiều ngôn ngữ khác): http://partow.net/programming/hashfunctions/index.html –