Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save lejonmanen/828f8eede7acac5b60963d6cbb4262ef to your computer and use it in GitHub Desktop.
Save lejonmanen/828f8eede7acac5b60963d6cbb4262ef to your computer and use it in GitHub Desktop.

Lösenordsgenerator

I denna övning ska du bygga en lösenordsgenerator i flera steg.

Level 1

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.

Level 2

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.

Level 3

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/

SHA-1: https://www.npmjs.com/package/js-sha1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment