इस टूल के बारे में
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% आपके ब्राउज़र में प्रोसेस होते हैं और कुछ भी अपलोड नहीं होता।