آموزش بلاکچینبلاکچین

آشنایی با تابع هش (Hash Function) به زبان ساده

تا اینجا متوجه شدیم کریپتوکارنسی چیست؟ حالا به سراغ یکی دیگر از مفاهیم این حوزه به نام هش می‌رویم. تابع هش یکی از ارکان اصلی اینترنت امن است. این توابع یکی از مهم‌ترین و کاربردی‌ترین علوم رایانه‌ای هستند که علاوه بر کاربردشان در افزایش امنیت استفاده از دنیای وب خصوصاً تکنولوژی WEB3، از طریق الگوریتم رمزنگاری در دنیای کریپتوکارنسی نیز بسیار پر‌کاربرد هستند. در این مقاله قصد داریم مفهوم تابع Hash را به زبانی ساده بازگو کنیم.

مفهوم هشینگ یا هش کردن

در فرایند هشینگ از طریق یک فرمول ریاضی ورودی‌ها با مقادیر مختلف تبدیل به یک خروجی با مقدار ثابت می‌شوند. به عبارتی دیگر، با Hash کردن مقداری را که می‌تواند تصویر، حروف یا اعداد باشد با طول نا‌معلوم، به یک خروجی با طول مشخص و قطعی تبدیل می‌کنیم. به این فرایند، تابع درهم ساز نیز می‌گویند.

فرایند هشینگ در مبانی امنیت اطلاعات بسیار کاربردی است و مهم‌ترین کاربرد آن زمانی است که شخصی قصد دارد یک پیام را به صورت کاملاً اختصاصی از طریق ایجاد یک فرمول، فقط برای یک گیرنده ارسال کند. خروجی هشینگ را Hash یا مقدار هش می‌گویند و تابع ریاضی آن‌ به تابع Hash معروف است.

تابع هش (Hash Function) چیست؟

تابع Hash یا توابع هش الگوریتم‌های ریاضی هستند که داده‌ها را با اندازه و طول متغیر دریافت می‌کنند و به خروجی یکسان و قطعی تبدیلشان می‌کنند. توابع Hash رکن اصلی فرایند هشینگ هستند.

به عبارتی دیگر، می‌توان گفت تابع Hash یک رشته کد با طول متناوب را دریافت و تبدیل به یک خروجی با طول ثابت می‌کند.

ویژگی‌های اصلی تابع هش

هر تابع هش باید شامل ویژگی‌هایی خاص باشد که در ادامه به معرفی آنها می پردازیم:

  • طول خروجی تابع هش یا مقدار هش، همیشه ثابت است.
  • تا زمانی که ورودی تغییر نکند، مقداری خروجی تابع Hash قطعی و ثابت است.
  • مقدار هش معمولاً بسیار کوچک‌تر از ورودی است. به همین خاطر به تابع هش، فشرده‌ساز نیز می‌گویند.
  • عملکرد تابع هش با رمزنگاری متفاوت است.
  • توابع Hash به‌صورت یک‌طرفه طراحی شده‌اند. به عبارتی دیگر، در هشینگ به دست آوردن خروجی از ورودی امکان‌پذیر است و عملیات عکس آن یعنی به دست آوردن ورودی از خروجی تقریباً غیر‌ممکن است.

کاربردهای تابع هش

تابع هش در بلاک چین ۳ کاربرد اصلی دارد:

ذخیره رمز عبور

یکی از کاربردهای اصلی این الگوریتم‌ها، ذخیره‌ی رمزهای عبور در بستر وب است. تابع Hash پسوردها را به طور شفاف ذخیره نمی‌کند و آن‌ها را به‌صورت یک فرمول هش ذخیره و ثبت می‌کند. هکرها هنگام حمله به سیستم فقط می‌توانند خروجی هش را به دست آورند که با توجه به توضیحی که کمی قبل‌تر در رابطه با یک طرفه بودن عملیات هشینگ دادیم؛ به دست آوردن ورودی از طریق مقدار Hash غیر‌ممکن است. در نتیجه ذخیره پسورد از این روش امنیت بالایی دارد.

حفظ امنیت

توابع هش در حفظ امنیت شبکه‌های بلاک چین و فضای کریپتوکارنسی جایگاه مهم و اساسی دارند. فرایند رمزنگاری در بلاک چین‌ها از طریق این الگوریتم‌ها انجام می‌شود. داده‌های موجود روی هر بلاک از طریق فرایند هشینگ به یک رشته کد تبدیل می‌شوند و به زنجیره‌ی اصلی می‌پیوندند.

بررسی صحت داده

 یکی دیگر از کاربردهای الگوریتم‌‌های هش، تولید چک سام‌ (CheckSum) بر روی فایل‌هاست. چک سام، به کاربران تضمین صحت داده می‌دهد و به آن‌ها کمک می‌کند تا هر تغییری را بر روی فایل‌ها سریعاً متوجه شوند. اما این سیستم در مورد اصالت فایل تضمینی نمی‌دهد و هکرها می‌توانند با تغییر کلی فایل، Hash جدید تولید و از این طریق به داده‌‌های فایل دسترسی پیدا کنند. استفاده از چک سام زمانی کاربرد دارد که کاربر در رابطه با اصالت فایل اطمینان داشته باشد.

تابع هش چگونه کار می‌کند؟

همان‌طور که گفتیم؛ توابع هش با توجه به سبک ساز‌ و‌‌ کارشان خروجی‌هایی با اندازه‌های متفاوت تولید می‌کنند؛ اما اندازه‌ی خروجی یک نوع خاص از تابع Hash همیشه یکسان است. برای مثال الگوریتم SHA-256 که تابع هش بیت کوین و پرکاربردترین هش جهان است؛ فقط قادر به تولید خروجی ۲۵۶ بیتی است. طول و مقدار ورودی هر میزان که باشد، مقدار هش ۲۵۶ بیت خواهد بود.

در مثال زیر، کلمه‌ Ircc را با ۲ حالت حرف اول بزرگ و حرف اول کوچک در تابع Hash بیت کوین همان SHA-256 جای داده‌ایم:

Ircc: 65592d00da56347062e6dc84e8ff978ba021267b288bbe3c7f2cb5c04d797bd4
ircc: 478734e921cc9b571d7ab5fc226dcb2ce59fcab83fb73258ab8082382d86c6ee

همان‌طور که مشاهده می‌کنید، با کوچک و بزرگ شدن فقط یک حرف، کد هش خروجی تغییر می‌کند؛ اما هر دو شکل همان مقدار خروجی ۲۵۶ بیتی را به وجود می‌آورند. تا به اینجا بارها اشاره کردیم که مقدار ورودی هر‌چه قدر هم که باشد، یک تابع Hash مقدار ثابتی خروجی دارد.

نکته: خروجی با طول ثابت سبب افزایش امنیت می‌شود؛ زیرا اگر کسی سعی در رمزگشایی و حمله به شبکه داشته باشد، با این شیوه قادر به تشخیص ورودی نخواهد بود.

تابع مطرح دیگری که وجود دارد، SHA-1 که مخفف عبارت الگوریتم‌ هش ایمن ‌(Secure Hash Algorithms) است. این عبارت شامل مجموعه‌ای از توابع هش رمزنگاری شده است که عبارت‌اند از SHA-0، SHA-1، SHA-2 و SHA-3.

تابع SHA-256 به همراه SHA-512 و انواع دیگر، بخشی از گروه SHA-2 هستند. در حال حاضر، فقط گروه‌های SHA-2 و SHA-3 ایمن در نظر گرفته می‌شوند.

حال اگر مثال بالا را در تابع SHA-1 قرار دهیم؛ مقادیر تابع زیر به دست خواهد آمد:

Ircc: a6f9af856be33de008c9f5ffb942e2c4e2d64
ircc: 3ec8e2b221402e786dfa6f0884a0e7f7be11c 

این تابع هم مانند همه‌ی توابع از ورودی‌هایی با طول متناوب، مقادیر ثابت تولید می‌کند و در صورت تغییر کد ورودی مقدار Hash آن تغییر می‌کند.

تابع هش رمزنگاری چیست؟

تابع هش در کریپتوکارنسی

تابع هش رمزنگاری همان تابع Hash است که تا اینجا ویژگی‌های آن را بازگو کردیم. با این تفاوت که این الگوریتم از فرایند رمزنگاری برای افزایش دوچندان امنیت استفاده می‌کند.

قبل‌تر گفتیم که به‌دست آوردن ورودی از مقدار هش کار بسیار دشواری است و تقریباً محال است. این امر سبب شده فرایند هشینگ امن و قابل اطمینان باشد. با این حال، توسعه‌دهندگان سعی کرده‌اند از طریق رمزنگاری این امنیت را در تابع Hash رمزنگاری شده چند برابر کنند.

این توابع نوع خاصی از الگوریتم‌‌های Hash هستند که ویژگی‌های مخصوص به خود را دارند؛ این ویژگی‌ها سبب شده برای تشخیص هویت، ‌ حفظ امنیت بیشتر، ‌ ساخت امضای دیجیتال و تأیید صحت داده‌ها در سیستم‌های دیجیتالی مختلف مورد استفاده قرار بگیرند.

ویژگی‌های تابع هش رمزنگاری

تابع هش رمزنگاری یکی از پایه‌های اصلی بلاک چین امن است. در زیر ویژگی‌های آن را بررسی می‌کنیم:

قطعی بودن

تابع هش در ازای یک ورودی مشخص، مقدار Hash ثابت ارائه می‌دهد. فرقی نمی‌کند این ورودی چند بار در تابع قرار بگیرد؛ میزان خروجی همیشه ثابت خواهد بود. این ویژگی سبب شده پیگیری داده‌‌ها آسان‌تر باشد. اگر هر بار به‌ازای یک ورودی ثابت، مقدار هش متفاوت ارائه شود؛ کاربران با انبوهی از کدهای Hash مواجه خواهند بود که جمع‌آوری و پیگیری آن‌‌ها دشوار و زمان‌بر است.

سرعت بالا در محاسبه

تابع هش باید ورودی را به سرعت تبدیل به مقدار هش کند. اگر این محاسبه به‌ میزان کافی سریع نباشد، سیستم نا کار‌آمد است.

یک‌طرفه بودن

تابع هش رمزنگاری، تابع یک‌طرفه است. یعنی در مقابل مقدار ورودی، خروجی به آسانی به دست می‌آید؛ اما عملیات برعکس این روند نمی‌توان گفت کاملاً غیر ممکن اما سخت و غیر عملی است.

تصور کنید اعداد بین ۵ تا ۱۰ را در این تابع قرار داده‌ایم و خروجی‌های ثابت آن‌ها را به دست آورده‌ایم. در این لیست کوتاه و با توجه به قطعیت مقدار Hash ، می‌توان با جایگزینی مجدد ورودی‌ها در تابع، مقدار ورودی هر خروجی را کشف کرد.

اما این عملیات زمانی که با لیست بلند بالایی از مقادیر ورودی مواجه هستیم، فرایندی بسیار سخت و زمان‌بر و می‌توان گفت غیر ممکن است. در این شرایط می‌توان از جستجوی جامع که به آن جستجوی بی‌خردانه یا خام نیز گفته می‌شود؛ استفاده کرد.

به این ترتیب که تمام خروجی‌ها را یک به یک و به‌صورت تصادفی با داده‌های ورودی امتحان کنید تا به نتیجه‌ی نهایی و درست دست پیدا کنید. در این جستجو شانس یافتن پاسخ درست بسیار پایین است و همان‌طور که گفتیم، روشی دور از خرد است.

تغییر خروجی با تغییرات ورودی

کوچک‌ترین تغییر در مقدار ورودی تابع هش رمزنگاری، مقدار خروجی Hash را به طور کامل تغییر خواهد داد. برای مثال، هنگامی که پسورد اینستاگرام خود را وارد می‌کنید، سیستم با توجه به مقدار هش قبلی که برای این ورودی ذخیره کرده است، اجازه‌ی ورود به حساب کاربری را برای شما صادر می‌کند. اگر کوچک‌ترین تغییری در پسوردی که وارد می‌کنید ایجاد شود، دیگر خروجی Hash قبلی کار نمی‌کند و سیستم اجازه‌ی دسترسی به پروفایلتان را نخواهد داد و به شما هشدار اشتباه بودن رمز ورود می‌دهد.

متفاوت بودن مقادیر هش برای هر ورودی 

هر ورودی در فرایند هشینگ دارای یک مقدار Hash مخصوص به خود خواهد بود و ممکن نیست که هش دو مقدار متفاوت ورودی با‌ هم مشابه یا برابر باشند.

می‌توان گفت هیچ‌گاه دو مقدار متفاوت ورودی تحت هیچ شرایطی Hash خروجی شبیه به هم نخواهند داشت. اگر ورودی A دارای مقدار هش H3 باشد، امکان ندارد که ورودی B نیز همین خروجی را بدهد.

ثابت بودن میزان خروجی 

طی فرایند هشینگ به‌ازای هر مقدار ورودی حتی با اندازه‌های بسیار بزرگ، طول مقدار هش همیشه ثابت و به یک اندازه خواهد بود. اگر عبارات «سلام روز گرم تابستانی شما به خیر» و «سلام» را در یک تابع هش ۲۵۶ بیتی قرار دهیم، میزان Hash خروجی هر دو به یک اندازه خواهد بود و عبارت بلندتر Hash طولانی‌تری نخواهد داشت. این روش سبب شده زمان محاسبات کوتاه‌تر شود و همچنین جمع‌آوری پیگیری داده‌های خروجی برای کاربران آسان‌تر باشد.

استفاده از تابع هش در ماینینگ ارزهای دیجیتال

در فرایند ماینینگ ارزهای دیجیتال برای مثال بیت کوین، یکی از مراحلی که ماینرها باید طی کنند، استفاده از تابع هش است. استفاده‌ی بسیار ماینرها از هشینگ در طی فرایند استخراج بلاک‌‌های جدید، از اصلی‌ترین دلایل امنیت بلاک چین است.

یک ماینر برای ایجاد هش بلاکی که در حال ماین کردن آن است، باید ورودی‌های متعددی را بررسی کند. آن‌ها فقط زمانی می‌توانند اعتبارسنجی بلاک جدید خود را نهایی کنند که یک مقدار Hash با تعداد صفرهای اولیه مشخص پیدا کنند. مقدار این صفر‌‌ها سختی فرایند استخراج را مشخص می‌کنند و تعداد آن‌ها بستگی به مقدار هش دارد و توسط شبکه های بلاک چین مشخص می‌شود.

نرخ هش ریت

اگر در رابطه با کاربرد توابع Hash در فرایند ماینینگ ارزهای دیجیتال مطالعه کرده باشید؛ بی‌شک با عبارت هش ریت‌ (Hash Rate) مواجه شده‌اید. هش ریت یا نرخ Hash نشان‌ دهنده‌ی میزان قدرت پردازش شبکه در استخراج بیت کوین است و معیاری برای اندازه‌گیری عملکرد یک دستگاه ماینر است. می‌توان گفت هش ریت، تعداد عملیات‌های هشینگ که در بستر فرایندهای استخراج شبکه در حال اجرا هستند را نمایش می‌دهد.

اگر میزان هش ریت شبکه به‌خاطر افزایش عملیات ماینینگ ارزهای دیجیتال بالا برود؛ سیستم به طور خودکار سختی استخراج را طوری تنظیم می‌کند که میانگین لازم برای استخراج هر بلاک در شبکه بیت کوین همان ۱۰ دقیقه باقی بماند. در حالتی دیگر، اگر به خاطر توقف ماینینگ چندین ماینر به‌صورت هم‌زمان، نرخ هش کاهش پیدا کند؛ باز هم شبکه سختی استخراج را به‌گونه‌ای تنظیم می‌‌کند که میانگین زمان ماین کردن تغییری نداشته باشد.

محاسبه نرخ هش

هش بر ثانیه رایج‌‌ترین مقیاس برای اندازه‌گیری نرخ Hash است که نشان می‌دهد در هر ثانیه چند Hash انجام می‌گیرد. تعدادی دیگر از مقیاس‌های اندازه‌گیری هش ریت که در واقع تنها عمل تبدیل واحد بر روی آن‌ها صورت گرفته است، عبارت‌اند از:

  • ۱ KH/s یا هزار Hash بر ثانیه
  • ۱ MH/s یا یک میلیون Hash بر ثانیه
  • ۱ GH/s یا یک میلیارد Hash بر ثانیه
  • ۱ TH/s یا یک تریلیون Hash بر ثانیه
  • ۱ PH/s یا یک کوادریلیون Hash بر ثانیه
  • ۱ EH/s یا یک کوینتیلیون Hash بر ثانیه

ارقام بالا به ترتیب کیلوهش، مگاهش، گیگاهش، تراهش، پتاهش و اگزا هش نام‌گذاری می‌شوند.

توابع هش پر کاربرد

انواع توابع هش

در این بخش با پرکاربردترین توابع Hash آشنا می‌شویم.

MD5

تابع هش MD که کوتاه شده‌ی عبارت Message Digest و به معنای خلاصه پیام است؛ شامل توابع هش MD2،MD4،MD5 و MD6 است. رونالد ریوست در سال ۱۹۹۱ میلادی تابع MD5 را جایگزینی برای نسخه‌ی پیشین آن یعنی MD4 طراحی کرد. MD5 هش ۱۲۸ بیتی تولید می‌کند و به عنوان هش رمز‌نگاری طراحی شده است که در دوره‌ای بسیار از آن استفاده می‌شد، اما به دلیل ایرادهای متعددی که داشت، به‌تدریج از فرایندهای رمزنگاری کنار گذاشته شد. امروزه از تابع هش MD5 برای چک سام استفاده می‌شود.

SHA

کمی قبل‌تر اشاره کردیم که SHA الگوریتم هش ایمن است. این تابع Hash توسط مؤسسه ملی استاندارد و فناوری (NIST) آمریکا و سایر سازمان‌‌های امنیتی طراحی شده است. SHA-0 نخستین عضو خانواده SHA در سال ۱۹۹۳ معرفی شد که کمی بعد به دلیل مشکلات قابل توجهی که داشت، نسخه‌ی جدیدتری از آن ارائه شد تا نقایص نسخه‌ی پیشین را رفع کند. نام تابع جدید SHA-1 بود.

SHA-1 یک تابع هش ۱۶۰ بیتی مشابه تابع MD5 بود و با هدف این‌که بخشی از الگوریتم امضای دیجیتال باشد، طراحی شد. سال ۲۰۰۵ در این تابع هش نیز مشکلات امنیتی کشف شد که احتمال داشت هکرها به آن نفوذ پیدا کنند. 

پس توسعه دهندگان الگوریتم جدید و ایمن SHA-2 که متشکل از ۶ تابع هش با مقادیر ه Hash ش متفاوت ۲۲۴، ۲۵۶، ۳۸۴ و ۵۱۲ بیتی بود را معرفی کردند. نام‌ این توابع نیز با توجه به مقدار هش تولید شده‌ توسط آن‌‌ها انتخاب شده است؛ SHA-224،SHA-256 SHA-384 ،SHA-512 ،SHA-512/224 و SHA-512/256. تفاوت اصلی این الگوریتم‌ها در طول مقدار هش ‌آن‌هاست.

بالاتر اشاره کردیم که الگوریتم SHA-256 در بلاک چینِ بیت کوین استفاده می‌شود و پرکاربرد‌ترین تابع Hash جهان است. همچنین از این الگوریتم در TLS ،SSL ،PGP ،SSH، توسعه چند منظوره پست الکترونیک، اینترنت/امن و IPsec یا همان ایمن‌سازی پروتکل اینترنت استفاده می‌شود.

SHA-3 آخرین عضو از خانواده الگوریتم هش ایمن، در سال ۲۰۱۵ توسط NIST منتشر شد. در سال ۲۰۱۲ در جریان یک مسابقه‌ در رابطه با طراحی الگوریتمی جدید، این تابع به عنوان برترین تابع Hash برگزیده شد. SHA-3 در واقع زیرمجموعه‌ای از خانواده گسترده‌تری به نام Keccak است. 

RIPEMD

RIPEMD کوتاه شده‌ی عبارت “RACE Integrity Primitives Evaluation Message Digest” است. این تابع نیز مانند الگوریتم SHA، مجموعه‌‌ای از توابع Hash است که یک گروه تحقیقاتی بلژیکی به نام COSIC در سال ۱۹۹۶ میلادی آن‌را معرفی کردند. در طراحی این تابع از اصول به‌کار رفته در طراحی تابع MD4 و سیستم عملکردی SHA-1 استفاده شده است. توابع این مجموعه دارای مقادیر متفاوت ۱۲۸، ۱۶۰، ۲۵۶ و ۳۲۰ بیتی هستند و امنیت بالایی دارند. 

Whirlpool

این الگوریتم یکی دیگر از توابع Hash رمزنگاری است که در سال ۲۰۰ توسط وینسنت ریمن (Vincent Rayman) و پائولو بارتو (Paoulo Bartou)طراحی شد. Whirlpool بر اساس نسخه اصلاح شده‌ی استاندارد رمزنگاری پیشرفته (AES) ساخته شده است. این تابع هر پیامی با طول کمتر از ۲۲۵۶ بایت را دریافت و به مقدار هش ۶۴ بایتی تبدیل می‌کند. 

تابع هش ویرپول از سال ۲۰۰۰ تاکنون، ۲ بار بازبینی شده است. در بازبینی نخست در سال ۲۰۰۱، S-box را تغییر دادند تا پیاده‌سازی این الگوریتم بر روی سخت‌افزار آسان‌تر شود. در سال ۲۰۰۳ و بازبینی دوم یک مشکل امنیتی در آن کشف شد و سریعاً توسط توسعه دهندگان تابع بر‌طرف شد. الگوریتم اولیه و اصلی را Whirlpool-0، بازبینی اول Whirlpool-T و نسخه نهایی را Whirlpool نام دارند.

Blake

تابع هش Blake جزو ۵ الگوریتم برتر به انتخاب مؤسسه ملی استاندارد و فناوری ایالات متحده (NIST) است. این الگوریتم همانند SHA-2، از ۲ تابع مختلف تشکیل شده است. یکی از کلمات ۳۲ بیتی استفاده می‌کند و طول هش محاسبه‌شده‌ی آن حداکثر ۲۵۶ بیت است؛ دیگری از کلمات ۶۴ بیتی استفاده می‌کند با طول Hash ۵۱۲ بیت.

Blake2 در سال ۲۰۱۲ منتشر شد. هدف از طراحی این الگوریتم، معرفی جایگزینی برای الگوریتم‌های پرکاربرد اما آسیب‌پذیر MD5 و SHA-1 در برنامه‌هایی که نیازمند کارایی بالایی بودند، بود. این تابع نیز خود به دو زیرگروه Blake2b و Blake2s تقسیم می‌شود. گفته می‌شود Blake2 از MD5، SHA-1، SHA-2 و SHA-3 سریع‌تر است و از لحاظ امنیت نیز با SHA-3، یعنی آخرین نسخه الگوریتم هش ایمن برابری می‌کند.

تابع هش؛ عضوی از جهان بزرگ داده و رمزنگاری

توابع هش عادی در فرایند‌هایی مانند جستجو در پایگاه‌های داده، تجزیه و تحلیل پرونده‌ها و داده‌های سنگین و حجیم، مدیریت داده‌ها و اطلاعات و زمینه‌های متعدد دیگر کاربرد دارند. توابع Hash رمزنگاری شده هم به طور گسترده در زمینه‌ی امنیت اطلاعات از جمله تأیید اعتبار پیام، اثر انگشت دیجیتال، تأیید پرداخت و دیگر موارد امنیتی اطلاعاتی استفاده می‌شود.  در سیستم بیت کوین توابع هش رمزنگاری در زیرساخت، فرایند استخراج و ایجاد آدرس‌ها، کلید‌های عمومی و خصوصی نقش دارند. 

همچنین این توابع در زمانی که با حجم زیادی از اطلاعات مواجه هستیم، به کمکمان می‌آیند. در این حالت، می‌توان یک فایل بزرگ و دارای حجم بالای اطلاعات را به عنوان ورودی به یک تابع هش داد و سپس از خروجی آن‌ که حجم بسیار کم‌تری دارد، به‌راحتی استفاده کرد.

 به طور کلی، می‌توان گفت اگر توابع Hash نبودند، امروزه خبری از امنیت در بستر وب و یا دنیای ارزهای دیجیتال نبود. آرامش خاطری که هنگام استفاده از اینترنت و دنیای ارزهای دیجیتال داریم، به‌خاطر حضور این توابع کاربردی و حیاتی هستند که امنیت داده‌ها و پیام‌‌ها را در این پلتفرم‌ها حفظ می‌کنند.

سوالات مهم کاربران در خصوص هش:

تابع هش چه کاربردی دارد؟ 

تابع هش در جهت حفظ تمامیت داده‌ها در شبکه بلاک چین فعالیت می‌کند و یکی از پایه‌های اصلی این شبکه محسوب می‌شود.

بهترین تابع هش کدام است؟

با توجه به بررسی‌های صورت گرفته توسط کارشناسان این حوزه، تابع SHA-256 بیشترین کاربرد در شبکه را دارد و یکی از بهترین توابع هش محسوب می‌شود.

سریع‌ترین تابع هش کدام است؟

برای پیام‌ها و داده‌های طولانی شبکه، تابع MD5 با سرعت ۴۰۰ مگابایت بر ثانیه، سریع‌ترین است.

۱۰

تابع هش چیست؟

گام قبلی (۱۰/۲۷) گام بعدی

نظرها و کامنت‌های شما در بهبود مطالب والکس کمک کننده خواهد بود.

به این مطلب چه امتیازی می‌دهید؟

میانگین امتیارها: ۴.۵ / ۵. مجموع آرا: ۶

من با تو می‌نویسم و می‌خوانم.
نوشته های مشابه
اشتراک در
اطلاع از
guest
ایمیل شما نمایش داده نمی شود
16 دیدگاه
بازخورد (Feedback) های اینلاین
View all comments
هاشم
هاشم
7 ماه قبل

ممنون. مقاله خوب و مفیدی بود.
کاربرد چک سام را که توضیح دادید بسیار مهم بود.
سپاسگزارم.

abbas panahi
abbas panahi
9 ماه قبل

باسلام مقالتون عالی بود اما ضعف هایی هم داشت شما اشاره ای به argon2idنکردید و اینکه در حال حاضر خود هش به تنهایی موثر نیست باید دارای نمک و فلفل باشد و مورد دیگر سریع بودن یک هش دلیل بر بهتر بودن ان نیست که اگر اینطور بود md5 از همه بهتر میشد اما بلکه طول کشیدن بسیار و استفاده از منابع سیستم شاید در وهله اول بد بنظر بیاید اما در دنیای هش ها این یک اصول است که باعث میشود هکر برای رمز گشایی وقت بسیاری را هدر دهد با تشکر

بیتا
بیتا
2 سال قبل

واقعا عالی بود…..
خانم امینی عزیز من اطلاعات خیلی ضعیفی در مورد ارزهای دیجیتال دارم. .این اولین مقاله ای بود که در این مورد مطالعه کردم. ..خواهش میکنم راهنمایی کنین که چه طور میتونم مطالعات وسیع و منظمی در این حوزه از پایه شروع کنم.خواهش میکنم در ایمیل به من جواب بدین. .ممنون میشم از لطفتون

فروزان زیبائی
فروزان زیبائی
2 سال قبل
پاسخ به  بیتا

سلام
وقت به خیر

به دنیای بزرگ ارزهای دیجیتال خوش آمدید. خوشحالیم که مقاله ما توجه شما را جلب کرده است. تقریبا تمامی کلیدواژه های مهم و مورد نیاز برای یادگیری شما به صفحه آن در بلاگ لینک شده است.
هر سوالی که در فرآیند مطالعاتی خود داشتید، در کامنت‌ها از ما بپرسید.

ممنون از همراهی شما

حمید
حمید
2 سال قبل

بسیار عالی . ممنون میشم اگر مقالات یا کتاب های جامع درباره ارز دیجیتال به زبان انگلیسی معرفی کنید. سپاسگزارم

لیلی امینی
لیلی امینی
2 سال قبل
پاسخ به  حمید

سلام آقای حمید

از مقالات آکادمی بایننس و سایت اینوستوپدیا استفاده کنید.

دو کتاب زیر، کتاب‌های خوبی هستند.
کتاب بلاکچین

ممنون از همراهیتان

امیر
امیر
3 سال قبل

با سلام
به جرات یکی از بهترین مقالات با بیانی ساده برای مخاطبان هست.
سپاسگزارم

لیلی امینی
لیلی امینی
3 سال قبل
پاسخ به  امیر

سلام آقای امیر

خواهش می کنیم؛ خوشحالیم که این مقاله را دوست داشتید و استفاده کردید‌.

سپاس از همراهیتان

محمد
محمد
3 سال قبل

عالی حرف نداشت دست مریزاد

لیلی امینی
لیلی امینی
3 سال قبل
پاسخ به  محمد

سلام آقای محمد

خواهش می کنم؛ خوشحالیم که از این مقاله راضی بودید.

سپاس از همراهیتان

mehrdad.hosenzadeh.mh@gmail.com
mehrdad.hosenzadeh.mh@gmail.com
3 سال قبل

عالیی

لیلی امینی
لیلی امینی
3 سال قبل

سلام

باعث خوشحالی ماست که از این مقاله راضی هستید.

سپاس از همراهیتان

علی
علی
2 سال قبل
پاسخ به  لیلی امینی

سلام خانم امینی
این تابع هایی که ماینرها اونارا حل میکنن دقیقا چی هستن.یعنی قبلا این تابع ها توسط مخترع اون طرح شدن یا نه خود نرم افزار درلحظه تابع ها را طراحی میکنه.ممنون میشم پاسخ بدین درایمیلم
متشکرم

لیلی امینی
لیلی امینی
2 سال قبل
پاسخ به  علی

سلام آقای علی
وقت به خیر

تمام تابع‌ها طراحی نشده‌اند. بلکه برنامه نویس اولیه بلاکچین یک الگوریتم برای ساخت تابع‌های جدید طراحی کرده است که با حل شدن هر بلاک، تابع بلاک جدید طبق الگوی اصلی توسط شبکه بلاکچین طراحی شده و برای استخراج در اختیار کاربران شبکه قرار می‌گیرد.

ممنون از همراهی شما

حمید
حمید
3 سال قبل

سلام،
بسیار زحمت کشیدید. مفید و سودمند.
پایدار باشید.

لیلی امینی
لیلی امینی
3 سال قبل
پاسخ به  حمید

سلام آقای حمید

بسیار خوشحال هستیم که از این مقاله راضی بودید و برایتان مفید بوده. با آرزوی موفقیت برای شما

سپاس از همراهیتان

دکمه بازگشت به بالا