UTILS.
100% ब्राउज़र में
🧂

scrypt KDF हैश जनरेटर और वेरिफ़ायर

कॉन्फ़िगर-योग्य N, r, p cost के साथ एक पासवर्ड से एक scrypt key व्युत्पन्न करें, या एक संग्रहीत scrypt स्ट्रिंग के विरुद्ध एक पासवर्ड सत्यापित करें। पूरी तरह आपके ब्राउज़र में चलता है।

पासवर्ड 100% आपके ब्राउज़र में हैश होते हैं — कुछ भी अपलोड नहीं होता।

— आउटपुट यहाँ दिखेगा —

इस टूल के बारे में

scrypt KDF हैश जनरेटर और वेरिफ़ायर scrypt आउटपुट को आपके ब्राउज़र में स्थानीय रूप से व्युत्पन्न और जाँचता है। scrypt, जिसे Colin Percival ने डिज़ाइन किया और RFC 7914 में मानकीकृत है, एक memory-hard key derivation function है: इसकी लागत जानबूझकर मेमोरी बैंडविड्थ से प्रभावित होती है ताकि कस्टम क्रैकिंग हार्डवेयर को बहुत कम लाभ मिले। पाइपलाइन है पासवर्ड को विस्तारित करने के लिए PBKDF2-HMAC-SHA256, बड़े अनुक्रमिक मेमोरी उपयोग को बाध्य करने के लिए BlockMix और Salsa20/8 core पर निर्मित ROMix फ़ंक्शन, और आपकी चुनी लंबाई की व्युत्पन्न key बनाने के लिए एक अंतिम PBKDF2-HMAC-SHA256।

Generate मोड crypto.getRandomValues से 16 यादृच्छिक salt बाइट पढ़ता है और तीन cost पैरामीटर के साथ scrypt चलाता है: N CPU/memory cost है और दो की घात होना चाहिए (डिफ़ॉल्ट 16384 = 2^14), r block size है (डिफ़ॉल्ट 8), और p parallelisation factor है (डिफ़ॉल्ट 1)। मेमोरी उपयोग लगभग 128 · N · r बाइट है — डिफ़ॉल्ट पर लगभग 16 MiB — और जब आपकी सेटिंग्स 256 MiB से अधिक हो जाएँ तो टूल चेतावनी देता है। आउटपुट एक स्व-वर्णनात्मक स्ट्रिंग $scrypt$ln=14,r=8,p=1$<base64 salt>$<base64 key> है जहाँ ln = log2(N), इसलिए सत्यापित करने के लिए ज़रूरी हर पैरामीटर हैश के साथ जाता है।

Verify मोड उस स्ट्रिंग में से ln, r, p, salt, और संग्रहीत key पार्स करता है, उम्मीदवार पासवर्ड के साथ व्युत्पन्न key पुनः परिकलित करता है, और मेल या गैर-मेल बताने के लिए एक constant-time तुलना करता है। scrypt core ब्राउज़र की सख़्त सुरक्षा नीति के तहत एक eval-मुक्त WebAssembly बिल्ड के रूप में चलता है, इसलिए पासवर्ड 100% आपके ब्राउज़र में प्रोसेस होते हैं और कुछ भी अपलोड नहीं होता।

अक्सर पूछे जाने वाले प्रश्न

N दो की घात क्यों होनी चाहिए?
scrypt का ROMix चरण ठीक N ब्लॉक की एक तालिका को अनुक्रमित करता है और अपनी integerify-and-mask एड्रेसिंग के लिए N के दो की घात होने पर निर्भर करता है। टूल गैर-दो-की-घात मान अस्वीकार करता है। विशिष्ट विकल्प इंटरैक्टिव उपयोग के लिए 16384 (2^14) और फ़ाइल एन्क्रिप्शन के लिए 1048576 (2^20) हैं।
scrypt कितनी मेमोरी उपयोग करता है?
लगभग 128 · N · r बाइट। डिफ़ॉल्ट N=16384, r=8 पर वह लगभग 16 MiB है। चूँकि ब्राउज़र इसे वास्तव में आवंटित करता है, बड़े N या r मान कम-RAM डिवाइस पर धीमे या विफल हो सकते हैं — टूल 256 MiB से ऊपर चेतावनी देता है।
r और p क्या नियंत्रित करते हैं?
r block size है, जो मेमोरी उपयोग और प्रति ब्लॉक अनुक्रमिक कार्य की मात्रा दोनों को स्केल करता है; r बढ़ाना N के साथ-साथ मेमोरी लागत बढ़ाता है। p parallelisation factor है, जो p स्वतंत्र scrypt गणनाएँ चलाता है, जो प्रति-इंस्टेंस मेमोरी पदचिह्न बढ़ाए बिना CPU लागत बढ़ाता है।
उत्पन्न हैश किस प्रारूप में है?
एक स्व-वर्णनात्मक स्ट्रिंग $scrypt$ln=<log2 N>,r=<r>,p=<p>$<base64 salt>$<base64 key>। यह हर पैरामीटर को अंतर्निहित करता है, इसलिए verify मोड को केवल उस स्ट्रिंग और पासवर्ड की आवश्यकता होती है। सारी गणना स्थानीय है — कुछ भी अपलोड नहीं होता।

और टूल