I denna övning ska du bygga en lösenordsgenerator i flera steg.
Skapa en enklare lösenordsgenerator i form av en function passwordGenerator(length)
där enda argumentet är längd på lösenordet.
Funktionen ska returnera ett slumpat lösenord som visas på skärmen. Använd Math.random() för att skapa slumptal.
Du får inte använda dig av regex.
Se till att din lösenordsgenerator genererar lösenord som uppfyller följande krav:
- Minst 10 tecken
- En siffra
- En stor bokstav
- En liten bokstav
- Ett specialtecken (
!"#$%&'()*+,-./:;<=>?@[\]^{|}
)
Du får inte använda dig av regex.
Gör en sökning med hjälp av Have I Been Pwned Password API om det genererade lösenordet har läkt ut från någon databas. Ifall en träff hittas ska ett nytt lösenord genereras och samma sökning ska ske en gång till. Processen upprepas tills du får ett lösenord som inte har läckt ut.
API: https://haveibeenpwned.com/API/v3#SearchingPwnedPasswordsByRange
Obs! API:et returnerar inte JSON, utan text.
För att kunna använda API:et behöver man hasha det genererade lösenordet med SHA-1. Använd npm-modulen js-sha1
. För att kunna använda npm-moduler i vanilla JS så behöver du kunna bundla ditt JavaScript, du kan använda browserify till det.
Browersify: http://browserify.org/