Scrypt-salasanatiivisteen luontityökalu
Laske salasanasta tiiviste scryptillä, muistia vaativalla avaimen johtamisfunktiolla. Määritä salt-arvo, kustannus (N), lohkokoko (r), rinnakkaisuus (p) ja avaimen pituus. Saat tiivisteen PHC-merkkijonona, heksadesimaalimuodossa ja Base64-muodossa. Toimii selaimessasi.
Syöte
Tuloste
Lue lisää
Mikä scrypt on?
scrypt on salasanan hajautusfunktio eli avainjohdantafunktio, jonka Colin Percival suunnitteli vuonna 2009 ja joka julkaistiin RFC 7914 -standardina. bcryptin ja Argon2:n tavoin se on tarkoituksella hidas, joten jokainen arvaus vie hyökkääjältä aikaa. Se on myös muistivaativa: jokainen hajautus täyttää suuren muistialueen ja lukee sen takaisin arvaamattomassa järjestyksessä, mikä tekee murrosta GPU:illa ja erikoisvalmisteisilla siruilla huomattavasti kalliimpaa. scryptiä käytetään salasanojen tallentamiseen monissa verkkokehityskehyksissä, Node.js:n, Pythonin ja Gon standardikirjastoissa sekä kryptovaluuttalompakoissa, kuten Ethereumin avaintallennuksissa.
Työkalun kuvaus
Tämä työkalu hajauttaa salasanan scryptillä selaimessasi. Se käyttää satunnaista suolaa ja OWASP:n suosittelemia salasanojen tallennusasetuksia. Voit muuttaa suolaa, kustannusta (N), lohkokokoa (r), rinnakkaisuutta (p) ja avaimen pituutta. Hajautusarvo on saatavilla PHC-merkkijonona salasanakirjastoja varten sekä heksadesimaali- ja Base64-muodossa koodia varten, joka tallentaa suolan ja parametrit erikseen.
Ominaisuudet
- Hajauttaa salasanan RFC 7914 -standardissa määritellyllä scryptillä
- Luo satunnaisen 16 tavun suolan, ja painikkeella voi luoda uuden
- Hyväksyy oman suolan, jotta muualla luodun hajautusarvon voi tuottaa uudelleen
- Asettaa kustannuksen (N) välille 2⁴–2²⁰ sekä lohkokoon (r), rinnakkaisuuden (p) ja avaimen pituuden
- Antaa hajautusarvon PHC-merkkijonona, heksadesimaalina ja Base64-muodossa
- Näyttää hitaiden hajautusten edistymisen ja varoittaa, jos asetukset vaativat yli 1 GiB muistia
- Toimii selaimessasi, joten salasana ei koskaan poistu laitteeltasi
Parametrit
| Parametri | Oletusarvo | Toiminta |
|---|---|---|
| Kustannus (N) | 131072 (2¹⁷) | Muistilohkojen määrä. Määrän kaksinkertaistaminen kaksinkertaistaa ajan ja muistinkulutuksen. |
| Lohkokoko (r) | 8 | Kunkin lohkon koko, 128 × r tavua. Vaikuttaa myös aikaan ja muistinkulutukseen. |
| Rinnakkaisuus (p) | 1 | Riippumattomien suorituskertojen määrä. Kertoo ajan, mutta ei muistinkulutusta. |
| Avaimen pituus | 32 tavua | Hajautusarvon pituus. |
Tarvittava muisti on 128 × N × r tavua, mikä oletusarvoilla on 128 MiB.
Tulostusmuodot
PHC-merkkijono sisältää kaiken, mitä tarvitaan salasanan tarkistamiseen myöhemmin: algoritmin, parametrit, suolan ja hajautusarvon. Suola ja hajautusarvo ovat Base64-muodossa ilman täytemerkkejä:
$scrypt$ln=17,r=8,p=1$<salt>$<hash>ln on N:n 2-kantainen logaritmi, joten ln=17 tarkoittaa, että N = 131072. Tätä muotoa lukevat ja kirjoittavat Pythonin passlib, Rustin scrypt-pakkaus ja Node.js:n @phc/scrypt-pakkaus.
Heksadesimaali- ja Base64-kentät sisältävät vain hajautusarvon, jonka palauttavat Node.js:n crypto.scrypt, Pythonin hashlib.scrypt ja Gon scrypt.Key. Tallenna suola ja parametrit niiden yhteydessä.
Näin se toimii
Suolakenttä luetaan tekstinä ja koodataan UTF-8-muotoon, aivan kuten annettaessa merkkijonomuotoinen suola Node.js:n crypto.scrypt-funktiolle. Satunnainen suola koostuu 16 satunnaisesta tavusta, jotka kirjoitetaan 32 heksadesimaalimerkkinä. Nämä 32 merkkiä ovat suola, joka hajautetaan. Myös salasana koodataan UTF-8-muotoon. Hajautusarvo lasketaan taustasäikeessä, joten sivu pysyy responsiivisena. Laskenta käynnistyy uudelleen, kun muutat mitä tahansa syötettä.
Vinkkejä
- Käytä jokaiselle salasanalle uutta satunnaista suolaa. Sama salasana samalla suolalla tuottaa aina saman hajautusarvon.
- OWASP suosittelee salasanojen tallennukseen vähintään arvoja N = 2¹⁷, r = 8 ja p = 1. N-arvoa kannattaa kasvattaa niin suureksi kuin palvelimesi pystyy käsittelemään jokaisen kirjautumisen yhteydessä.
- Node.js rajoittaa scryptin muistinkulutuksen oletusarvoisesti 32 MiB:iin. Anna
crypto.scrypt-funktiolle suurempimaxmem-arvo, kun käytät asetuksia N = 2¹⁷ tai suurempi ja r = 8. - Voit tarkistaa toisessa järjestelmässä luodun hajautusarvon syöttämällä saman salasanan, suolan ja parametrit sekä vertaamalla tuloksia.