تا اینجا آموختید که هش چیست و چگونه کار میکند.
برای درک صحیح از عملکرد هش یا هشینگ در ارزهای دیجیتال، بهتر است تا چند نمونه و نمونه واقعی از هش را مشاهده کرده و هش اختصاصی خود را ایجاد نمایید.
همین حالا بیایید بررسی کنیم که فرآیند هش چگونه با استفاده از یک تابع هش واقعی انجام میشود.
از آنجایی که SHA-256 تابع هش انتخابی بیت کوین است، اجازه دهید از آن برای مثال استفاده کنیم.
این اولین نمونه ورودی ماست:
pipkade.com is cool as ice
هنگامی که این جمله در تابع هش SHA-256 وارد میشود، جمله زیر به عنوان خروجی ایجاد میشود که به آن هش گفته میشود:
A58E12FAC905B8F84EA2F64F888191A4B66A67CC45F8E7B7B0F94C37A134CB57
توجه داشته باشید که هش تولید شده، یک خلاصه از ترکیبی از اعداد و حروف با طول دقیق ۶۴ کاراکتر است.
جدا از این، به واقعیت بپردازید که از نگاه کردن به این هش نمیتوانید چیزهای زیادی بفهمید. الگو یا سرنخی برای فهمیدن ورودی وجود ندارد. تنها به نظر میرسد که یک مشت ترکیب نامفهوم است!
حتی اگر خروجی به نظر برخوردار از اتفاقهای تصادفی باشد، اما این قابلیت وجود دارد که با نگاه کردن به آن حدس بزنید چه ورودی است.
اگر همان ورودی را دوباره از طریق تابع هش SHA-256 اجرا کنید، دقیقاً همان هش یا خروجی را دریافت خواهید کرد.
ورودیهای یکسان، خروجی منحصر به فرد و ثابتی را تولید میکنند.
حالا بیایید یک تغییر ظریف در ورودی ایجاد کنیم و ببینیم چه اتفاقی میافتد:
pipkade.com is cool as lice
توجه داشته باشید که حرف "ل" برای املای "شپش" به ابتدای کلمه "یخ" اضافه شده است.
این خلاصه جدید است:
B8784EAEB1
FC50719B2041FB1AEE30FF91516529CCB65B4B446CC4D5F6B4EB95FC50719B2041FB1AEE30FF91516529CCB65B4B446CC4D5F6B4EB95
حالا بیایید این دو را با هم مقایسه کنیم:
ورودی هش | |
---|---|
http://pipkade.com/ is cool as ice | A58E12FAC905B8F84EA2F64F888191A4B66A67CC45F8E7B7B0F94C37A134CB57 |
http://pipkade.com/ is cool as lice | B8784EAEB1FC50719B2041FB1AEE30FF91516529CCB65B4B446CC4D5F6B4EB95 |
میبینید که نتیجه، کاملاً متفاوت از اولین هش یا خروجی است.
اگرچه ورودیها تقریباً یکسان بودند، اما تغییر حتی یک کاراکتر، خروجی کاملاً متفاوتی را ایجاد کرد.
شپشها بسیار ناراحت کننده هستند، بنابراین اجازه دهید یک تغییر دیگر در ورودی ایجاد کنیم:
pipkade.com is cool as rice
حالا ببینیم چه اتفاقی میافتد:
FCA7032BE8CF7F3C0DD75B8DEB77412E452EA5E2275BAA4125123CD639ED2C9A
یک ورودی کاملاً متفاوت یک بار دیگر!
حالا بیایید هر سه را با هم مقایسه کنیم:
ورودی | هش |
---|---|
بهصورت کلی، طول ورودی مهم نیست، طول هش همیشه ثابت و کاملاً تصادفی به نظر میرسد.
از طریق این سایت میتوانید هرچه خواستهاید را به هش تبدیل کنید تا بهطور کامل متوجه شوید و با نمونه هش بیشتر آشنا شوید!
هدف اصلی از هش کردن، تأیید صحت یک داده است.
از آنجایی که هش تولید شده منحصر به فرد برای دادههای ورودی است، به عنوان یک "اثر انگشت" منحصر به فرد از دادههای ورودی عمل میکند.
منحصر به فرد بودن هش هر داده باعث میشود تا در ارسال دادهها از طریق کانالهای ارتباطی ناامن مانند اینترنت، امنیت و اعتبار دادهها تضمین شود.
هش دریافتی از یک داده را میتوان با هش داده قبل از ارسال مقایسه کرد تا مشخص شود که آیا دادهها تغییر کردهاند یا خیر.
اگر هم پیام ورودی و هم هش آن را در اختیار شما بگذارم، میتوانید از پیام بار دیگر خروجی بگیرید و هر دو هش را با یکدیگر مقایسه کنید.
برای نمونه، در مثال زیر کاربرد هش در ایمیل و رمز عبور توضیح داده شده است.
هدف این کاربرد از هش در ایمیل و رمز عبور، محافظت از اطلاعات کاربران است. ارائهدهنده ایمیل رمز عبور واقعی را ذخیره نمیکند. به جای آن، رمز عبور را از طریق یک تابع هش اجرا میکند و هش را ذخیره میکند.
هر بار که کاربر سعی میکند وارد حساب ایمیل شود، ارائهدهنده ایمیل رمز عبور را درهم میکند و هش دریافتی را با هش ذخیره شده مقایسه میکند. این امر اطمینان میدهد که حتی اگر هکر به سیستم نفوذ کند، به رمز عبور واقعی دسترسی نخواهد داشت.
از نظر فنی، هش به دلیل برگشتناپذیری و یک طرفه بودن، برای امنیت اطلاعات بسیار حائز اهمیت است. این ویژگیها باعث میشوند هکرها نتوانند تنها با نگاه به هش، به رمز عبور اصلی دسترسی پیدا کنند. همچنین، هش کردن تضمین میکند که دادهها به صورت درهم ذخیره شوند و سرقت آنها دشوار باشد.