کرپٹوگرافک ہیش کیا ہے؟
ایک کرپٹوگرافک ہیش فنکشن کسی بھی لمبائی کے ان پٹ کو لے کر ایک طے شدہ لمبائی کا ڈائجسٹ پیدا کرتا ہے۔ ایک ہی ان پٹ ہمیشہ ایک ہی ڈائجسٹ پیدا کرتا ہے؛ ایک بٹ بدلنے سے تقریباً نصف آؤٹ پٹ بٹس بدل جاتے ہیں۔ یہ ٹول چار سب سے زیادہ استعمال ہونے والے ڈائجسٹس کا حساب لگاتا ہے — MD5 (RFC 1321)، SHA-1، SHA-256 اور SHA-512 (SHA خاندان کی تعریف FIPS 180-4 میں ہے) — کسی بھی متن یا فائل کے لیے جو آپ فراہم کریں، آپ کے ڈیوائس سے ڈیٹا کہیں بھیجے بغیر۔
یہ ہیش جنریٹر کیسے کام کرتا ہے؟
ہیشنگ مکمل طور پر آپ کی مشین پر چلتی ہے۔ SHA-1، SHA-256 اور SHA-512 کو براؤزر کی نیٹِو crypto.subtle.digest API کے سپرد کیا جاتا ہے؛ MD5 ایک بنڈل شدہ پبلک ڈومین عملدرآمد استعمال کرتا ہے کیونکہ Web Crypto میں MD5 شامل نہیں۔ مراحل یہ ہیں:
- آپ کا ان پٹ ٹیکسٹ ایریا سے پڑھا جاتا ہے، یا آپ کی فائل ڈسک سے ایک
ArrayBufferمیں پڑھی جاتی ہے۔ ہیشنگ سے پہلے متن کو UTF-8 میں انکوڈ کیا جاتا ہے تاکہ ڈائجسٹ وہی نکلے جو سرور سائیڈhashlib.sha256(text.encode())کال سے نکلتا ہے۔ - ہر الگورتھم پیغام کو بلاک کی حد تک پیڈ کرتا ہے اور اسے بلاک بہ بلاک پراسیس کرتا ہے، ان پٹ بائٹس کو اندرونی حالت کے ساتھ بٹوائز اور ماڈولر-حسابی آپریشنز کی ایک سلسلہ کے ذریعے ملاتا ہے۔
- جب آخری بلاک پراسیس ہو جاتا ہے تو اندرونی حالت کو حتمی شکل دی جاتی ہے: MD5 128 بٹس پیدا کرتا ہے، SHA-1 160 بٹس، SHA-256 256 بٹس اور SHA-512 512 بٹس۔
- خام ڈائجسٹ بائٹس کو یا تو لوئر کیس ہیکساڈیسیمل کے طور پر یا معیاری Base64 کے طور پر فارمیٹ کیا جاتا ہے، اس انکوڈنگ کے مطابق جو آپ پینلز کے اوپر منتخب کرتے ہیں۔
- ہر ڈائجسٹ کو اس کے اپنے ریڈ-اونلی ٹیکسٹ ایریا میں کاپی بٹن کے ساتھ لکھا جاتا ہے۔ لائیو موڈ آن کرنے سے ہر کی سٹروک پر دوبارہ ہیش ہوتا ہے تاکہ آپ avalanche effect کو حقیقی وقت میں دیکھ سکیں۔
مجھے کون سا ہیش الگورتھم استعمال کرنا چاہیے؟
یہاں شامل چاروں الگورتھمز پرانے چیک سمز سے لے کر موجودہ کرپٹوگرافک سفارشات تک کے پورے دائرے کا احاطہ کرتے ہیں۔ واقفیت کے بجائے کام کے مطابق منتخب کریں:
- MD5 (128 بٹ) — تیز اور ہر جگہ موجود، مگر کرپٹوگرافک طور پر ٹوٹا ہوا۔ عملی تصادم 2004 سے عوامی ہیں۔ اسے صرف غیر سکیورٹی چیک سمز کے لیے استعمال کریں: ڈی ڈپلیکیشن کیز، کیش بسٹرز، ETag طرز کے فنگر پرنٹس، اور کسی قابلِ بھروسہ کیٹلاگ کے مقابلے میں فائل کی سالمیت کی تصدیق۔
- SHA-1 (160 بٹ) — سکیورٹی کے لیے بھی متروک۔ SHAttered حملے نے 2017 میں عوامی PDF تصادم کا مظاہرہ کیا۔ ابھی بھی پرانے Git آبجیکٹ IDs، پرانے TLS سرٹیفکیٹس اور HMAC ساختوں میں نظر آتا ہے جہاں بنیادی ہیش کا ٹوٹنا ابھی تک کلید کو لیک نہیں کرتا۔ نئے کام کے لیے اسے نہ اپنائیں۔
- SHA-256 (256 بٹ) — موجودہ عمومی مقاصد کا ڈیفالٹ۔ TLS سرٹیفکیٹ فنگر پرنٹس، Bitcoin بلاک ہیشز، سافٹ ویئر ریلیز چیک سمز، کنٹینر امیج ڈائجسٹس اور زیادہ تر جدید کوڈ سائننگ پائپ لائنوں میں استعمال ہوتا ہے۔ شک کی صورت میں یہی منتخب کریں۔
- SHA-512 (512 بٹ) — SHA-256 کا ہی SHA-2 خاندان لیکن بڑے اندرونی حالت اور وسیع 64 بٹ ورڈ سائز کے ساتھ۔ 64 بٹ CPUs پر اکثر SHA-256 سے تیز ہے اور جب آپ کو اضافی تصادم کا حاشیہ یا HMAC کلیدوں کے لیے لمبے ڈائجسٹس درکار ہوں تو ترجیحی انتخاب ہے۔
یہ ہیش جنریٹر کیوں استعمال کریں؟
- رازداری: ان پٹ کا ہر بائٹ آپ کے براؤزر میں مقامی طور پر ہیش ہوتا ہے۔ کوئی فائل اپ لوڈ نہیں، کوئی نیٹ ورک راؤنڈ ٹرپ نہیں، کوئی سرور لاگ نہیں۔ فائل پکر File API کے ذریعے براہِ راست ڈسک سے پڑھتا ہے۔
- ایک ہی بار میں چار ڈائجسٹس: ایک بار پیسٹ کریں اور MD5، SHA-1، SHA-256 اور SHA-512 کو ساتھ ساتھ پڑھیں، آؤٹ پٹ انکوڈنگ کو ہیکس اور Base64 کے درمیان بغیر دوبارہ ہیش کیے بدلیں۔
- معیاروں کے مطابق آؤٹ پٹ: SHA خاندان
crypto.subtle.digestکے سپرد ہے، جو وہی FIPS 180-4 عملدرآمد ہے جس پر آپ کا آپریٹنگ سسٹم پہلے ہی اعتماد کرتا ہے۔ MD5 RFC 1321 کی بائٹ بہ بائٹ پیروی کرتا ہے۔ - تصدیق کے کام کے لیے بنایا گیا: لائیو موڈ ٹائپ کرتے ہوئے avalanche effect دکھاتا ہے؛ فائل پینل اتنی بڑی بائنریز سنبھالتا ہے جتنی ٹیب کی میموری گنجائش رکھتی ہو تاکہ آپ ٹرمینل کے بغیر ریلیز آرکائیوز کی تصدیق کر سکیں۔
ہیش فنکشنز کے عام استعمال کیا ہیں؟
ہیشز روزمرہ انجینئرنگ کے کام میں ہر جگہ نظر آتے ہیں:
- ڈاؤن لوڈز کی تصدیق: کسی ریلیز آرکائیو کے SHA-256 ڈائجسٹ کو پروجیکٹ کی ویب سائٹ پر شائع کردہ قدر کے مقابلے میں رکھنا تاکہ یقین ہو کہ منتقلی کے دوران اس میں چھیڑ چھاڑ نہیں ہوئی۔
- انٹیگریشنز کی ڈی بگنگ: کسی پارٹنر سروس کو درکار MD5 یا SHA-256 کی ہو بہو نقل تیار کرنا جو ریکویسٹ سگنیچر میں ہو، تاکہ آپ اپنے کینونیکل سٹرنگ بلڈر میں آف-بائی-ون ڈھونڈ سکیں۔
- مواد کی ایڈریسنگ: کسی پے لوڈ سے ایک متعین ID پیدا کرنا تاکہ اسے کیش کلید، ڈی ڈپلیکیشن مارکر یا Git طرز کے آبجیکٹ شناخت کنندے کے طور پر استعمال کیا جا سکے۔
ہیش کی مثال کیسی دکھتی ہے؟
ASCII سٹرنگ hello کو ہیش کرنے سے MD5 کے طور پر 5d41402abc4b2a76b9719d911017c592، SHA-1 کے طور پر aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d، SHA-256 کے طور پر 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824، اور SHA-512 کے طور پر 9b71d224bd62f3785d96d46ad3ea3d73... سے شروع ہونے والی 128 حروف کی ہیکس سٹرنگ بنتی ہے۔ ایک ٹریلنگ سپیس کا اضافہ کر کے دوبارہ ہیش کرنے سے ہر ڈائجسٹ پہچان سے باہر بدل جاتا ہے۔
یہ ہیش جنریٹر مکمل طور پر آپ کے براؤزر میں اُنہی پرائمیٹوز پر چلتا ہے جن پر آپ کا آپریٹنگ سسٹم پہلے ہی اعتماد کرتا ہے: SHA خاندان کے لیے Web Crypto اور اس واحد ڈائجسٹ کے لیے ایک چھوٹا، آڈٹ شدہ MD5 روٹین جو Web Crypto فراہم نہیں کرتا۔ پیسٹ کریں، فائل ڈراپ کریں، ڈائجسٹ کاپی کریں — اور کچھ بھی ٹیب سے باہر نہیں جاتا۔