Hash function

Hash function تابعی است که ورودی با طول دلخواه را به خروجی با طول ثابت، به نام hash یا digest، تبدیل می‌کند.

توضیح

برای یک ورودی یکسان، همیشه همان digest تولید می‌شود و محاسبه معمولاً سریع است. چون طول خروجی ثابت است، ممکن است دو ورودی متفاوت خروجی یکسانی داشته باشند؛ به این حالت collision می‌گویند. Hash function در ساختارهایی مثل dictionary و در کاربردهای امنیتی استفاده می‌شود، اما هر نوع آن برای cryptography مناسب نیست. در نوع امن، بازیابی ورودی از خروجی و پیدا کردن دو ورودی با خروجی یکسان باید از نظر محاسباتی غیرعملی باشد.

مثال

import hashlib

a = hashlib.sha256(b"hello").digest()
b = hashlib.sha256(b"Hello").digest()

assert len(a) == len(b) == 32
assert a != b

چرا مهمه

هنگام بررسی تغییر فایل، کار با cache یا پیاده‌سازی digital signature با آن روبه‌رو می‌شوی. انتخاب Hash function مناسب مهم است؛ گزینه‌ای که برای سرعت طراحی شده، لزوماً برای امنیت مناسب نیست.

این کارت را هوش مصنوعی نوشته و دو بار با هوش مصنوعی بررسی شده است.

بر پایهٔ «Hash function» از MDN Web Docs (Mozilla Contributors)، با مجوز CC BY-SA 2.5. این کارت هم با همین مجوز منتشر شده است.

مطالبی با این مفهوم

هنوز مطلبی منتشر نشده.