هشینگ یک فرآیند است که در طی آن کلید یا رشته ای از کاراکترها به مقدار دیگری تبدیل می شود. حاصل این فرآیند معمولاً توسط یک مقدار با اندازه ثابت و کوتاه هست.
بیشترین کاربرد فرآیند Hashing در ایجاد Hash table است که جفت کلید-مقدار را نگه میدارد. در این حدول کلیدها توسط تابع hash به یک عدد که اندیس مقدار موردنظر هست تبدیل می شوند. اندازه hash table نامحدود است.
این تابع یک الگوریتم برمبنای محاسبات ریاضیاتی است. بهترین الگوریتم آن است که امکان به دست آوردن کلید از طریق hash مقدور نباشد.
نگاشت داده های جفت کلید-مقدار به گونه ای که توضیح داده شد کلیدها به یک داده با اندازه ثابت تبدیل می شوند که به عنوان اندیس مقدار موردنظر آن در حافظه استفاده می شوند.
از آنجا که فرآیند hashing یک طرفه است و همچنین مقدار hash برای دو متن یکسان، یکسان است از آن برای تأیید هویت فرستنده و یا گیرنده در پیام های دیجیتالی استفاده می شود. امضای دیجیتالی ورودی hash function خواهد بود.
در این سناریو، یک تابع هش امضای دیجیتال را قبل از اینکه هم مقدار هش شده (که به عنوان خلاصه پیام شناخته می شود) و هم امضا در ارسال های جداگانه به گیرنده ارسال شود، تبدیل می کند.
پس از دریافت، همان تابع هش، خلاصه پیام را از امضا استخراج می کند و با خلاصه پیام ارسالی مقایسه می شود تا اطمینان حاصل شود که هر دو یکسان هستند.
از دیگر کاربردها در Cybersecurity و cryptography است.