Bcrypt-generaattori
Luo bcrypt-salasanatiiviste satunnaisella 16 tavun suolalla ja kustannuskertoimella 4–12. Työkalu palauttaa tavallisen modulaarisen salausmerkkijonon, joka alkaa $2a$ ja jonka PHP password_verify, Node.js bcrypt, Spring Security ja useimmat kehykset hyväksyvät. Käytä sitä testikäyttäjien luonnissa, järjestelmänvalvojan salasanan vaihtamisessa tietokantaan tai oman tiivistekoodisi tarkistamisessa. Salasanaa ei koskaan näytetä uudelleen eikä tallenneta.
Usein kysytyt kysymykset
Mikä on bcrypt?
Bcrypt on 1999:n salasanatiivistefunktio, joka perustuu Blowfish-salaukseen. Se yhdistää satunnaisen suolan säädettävään kustannukseen, joten jokainen kustannusaskel kaksinkertaistaa työn, jonka hyökkääjän on tehtävä kutakin arvausta kohden. Se on edelleen laajalti tuettu vaihtoehto salasanojen tallennukseen.
Mitä tulostemerkkijono tarkoittaa?
Tiiviste, kuten $2a$10$, jota seuraa 53 merkkiä, sisältää version 2a, kustannuksen 10, 22-merkkisen suolan ja 31-merkkisen tiivisteen, kaikki bcryptin omassa Base64-merkistössä. Tallenna koko merkkijono, sillä tarkistin lukee siitä suolan ja kustannuksen.
Minkä kustannuskertoimen valitsen?
Työkalu sallii kustannuksen 4–12 ja käyttää oletusarvoisesti arvoa 10, joka on yleinen kehysten oletus. Jokainen askel kaksinkertaistaa laskenta-ajan, joten kustannuksella 12 laskenta kestää noin neljä kertaa kauemmin kuin kustannuksella 10. Valitse tuotantokäyttöön suurin kustannus, jonka palvelimesi pystyvät käsittelemään noin 100–250 millisekunnissa.
Miksi kustannus on rajoitettu arvoon 12?
Suuremmilla kustannuksilla yhden tiivisteen laskenta kestää sekunteja, jolloin yksi pyyntö voisi varata palvelimen pitkäksi aikaa. Kustannus 12 on jo riittävän vahva useimpiin sovelluksiin, ja voit tarvittaessa laskea tiivisteen uudelleen suuremmalla kustannuksella omassa ympäristössäsi.
Miksi sama salasana tuottaa joka kerta erilaisen tiivisteen?
Työkalu luo jokaista tiivistettä varten uuden satunnaisen 16 tavun suolan. Eri suolat tuottavat erilaisia merkkijonoja, mutta kaikki ne voidaan varmentaa samalla salasanalla. Näin hyökkääjät eivät voi käyttää valmiiksi laskettuja taulukoita.
Onko salasanan pituudella rajoitus?
Kyllä. Bcrypt käyttää salasanasta vain ensimmäiset 72 tavua, joten työkalu hylkää pidemmät salasanat sen sijaan, että sivuuttaisi loput hiljaisesti. Muut kuin ASCII-merkit vievät UTF-8-muodossa useita tavuja kukin.
Hyväksyvätkö PHP tai Laravel $2a$-tiivisteen?
Kyllä. PHP password_verify, Laravel, Symfony ja WordPress-lisäosat, jotka käyttävät password_hash-funktiota, hyväksyvät $2a$-, $2b$- ja $2y$-tiivisteet, jotka eroavat toisistaan vain historiallisten virheenkorjausten osalta. Node.js bcrypt, bcryptjs, Python bcrypt ja Spring Security hyväksyvät myös $2a$-tiivisteen.
Tallennetaanko tai kirjataanko salasanani lokiin?
Ei. Salasanaa käytetään vain tiivisteen laskemiseen pyynnön aikana. Se poistetaan vastauksesta, eikä sitä koskaan kirjoiteta lokiin tai tallennustilaan.
Pitäisikö minun käyttää bcryptiä vai Argon2:ta?
OWASP suosittelee nykyään Argon2idia, koska se vaatii paljon muistia, mikä tekee GPU-hyökkäyksistä kalliimpia. Bcrypt on silti hyväksyttävä ja sillä on erittäin laaja kirjastotuki, joten se on hyvä valinta, kun Argon2 ei ole käytettävissä.
Miten tarkistan salasanan bcrypt-tiivistettä vasten?
Käytä tämän sivuston Bcrypt Verifier -työkalua tai kutsu ohjelmistokehikkosi verify-funktiota. Älä koskaan vertaa bcrypt-merkkijonoja suoraan, sillä saman salasanan uusi tiiviste näyttää aina erilaiselta.