هش رمزنگاری چیست؟
یک تابع هش رمزنگاری یک ورودی با طول دلخواه میگیرد و یک خلاصه با طول ثابت ارسال میکند. ورودی یکسان همیشه همان خلاصه را تولید میکند؛ تغییر یک بیت تقریباً نیمی از بیتهای خروجی را تغییر میدهد. این ابزار چهار خلاصه از پرکاربردترینها را محاسبه میکند — MD5 (RFC 1321)، SHA-1، SHA-256 و SHA-512 (خانواده SHA توسط FIPS 180-4 تعریف شده) — برای هر متن یا فایلی که ارائه میدهید، بدون ارسال هرگز داده از دستگاه شما.
این مولد هش چگونه کار میکند؟
هشسازی کاملاً روی دستگاه شما اجرا میشود. SHA-1، SHA-256 و SHA-512 به API بومی crypto.subtle.digest مرورگر ارسال میشوند؛ MD5 از یک پیادهسازی public-domain همراه استفاده میکند زیرا Web Crypto MD5 را ارائه نمیدهد. مراحل عبارتند از:
- ورودی شما از textarea خوانده میشود یا فایل شما از دیسک در یک
ArrayBufferخوانده میشود. متن قبل از هشسازی به صورت UTF-8 رمزگذاری میشود. - هر الگوریتم پیام را به یک مرز بلوک pad میکند و آن را بلوک به بلوک پردازش میکند.
- وقتی بلوک نهایی مصرف میشود، حالت داخلی نهایی میشود: MD5 128 بیت، SHA-1 160 بیت، SHA-256 256 بیت و SHA-512 512 بیت تولید میکند.
- بایتهای خام خلاصه به صورت هگزادسیمال کوچک یا Base64 استاندارد فرمتبندی میشوند.
- هر خلاصه در textarea فقط-خواندنی خود با یک دکمه کپی نوشته میشود. روشن کردن حالت زنده در هر ضربه کلید هش مجدد انجام میدهد.
کدام الگوریتم هش باید استفاده کنم؟
چهار الگوریتم ارائهشده اینجا کل طیف از checksum های میراثی تا توصیههای رمزنگاری فعلی را پوشش میدهند:
- MD5 (128 بیتی) — سریع و فراگیر، اما از نظر رمزنگاری شکسته است. تصادمهای عملی از سال 2004 عمومی هستند. فقط برای checksum های غیر امنیتی استفاده کنید.
- SHA-1 (160 بیتی) — همچنین برای امنیت منسوخ شده. حمله SHAttered یک تصادم PDF عمومی را در 2017 نشان داد. برای کار جدید از آن استفاده نکنید.
- SHA-256 (256 بیتی) — پیشفرض عمومی فعلی. در اثر انگشت گواهی TLS، هشهای بلوک بیتکوین، checksum های انتشار نرمافزار و خطوط لوله امضای کد مدرن استفاده میشود. وقتی تردید دارید این را انتخاب کنید.
- SHA-512 (512 بیتی) — همان خانواده SHA-2 مانند SHA-256 با حالت داخلی بزرگتر. اغلب روی CPU های 64 بیتی از SHA-256 سریعتر است.
چرا از این مولد هش استفاده کنیم؟
- حریم خصوصی: هر بایت ورودی به صورت محلی در مرورگر شما هش میشود. بدون آپلود فایل، بدون رفتوبرگشت شبکه، بدون لاگ سرور.
- چهار خلاصه در یک پاس: یک بار پیست کنید و MD5، SHA-1، SHA-256 و SHA-512 را کنار هم بخوانید.
- خروجی صحیح استاندارد: خانواده SHA به
crypto.subtle.digestواگذار میشود، که همان پیادهسازی FIPS 180-4 است که سیستمعامل شما به آن اعتماد دارد. - ساخته شده برای کار تأیید: حالت زنده تأثیر بهمن را در حین تایپ نشان میدهد.
کاربردهای رایج توابع هش چیست؟
هشها در کار مهندسی روزمره ظاهر میشوند:
- تأیید دانلودها: مقایسه خلاصه SHA-256 یک آرشیو انتشار با مقدار منتشر شده در وبسایت پروژه برای تأیید اینکه در حین انتقال دستکاری نشده.
- اشکالزدایی یکپارچهسازیها: بازتولید MD5 یا SHA-256 دقیقی که یک سرویس شریک در امضای درخواست انتظار دارد.
- آدرسدهی محتوا: تولید یک شناسه قطعی از یک payload برای استفاده به عنوان کلید کش، نشانگر تکرارزدایی یا شناسه شیء به سبک Git.
مثال هش چگونه است؟
هش کردن رشته ASCII hello نتیجه 5d41402abc4b2a76b9719d911017c592 را به عنوان MD5، aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d را به عنوان SHA-1، 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 را به عنوان SHA-256، و یک رشته hex 128 کاراکتری که با 9b71d224bd62f3785d96d46ad3ea3d73... شروع میشود را به عنوان SHA-512 تولید میکند.
این مولد هش کاملاً در مرورگر شما روی همان primitives که سیستمعامل شما به آن اعتماد دارد اجرا میشود. پیست کنید، یک فایل رها کنید، یک خلاصه کپی کنید — چیز دیگری تب را ترک نمیکند.