Skip to content

Instantly share code, notes, and snippets.

@zocom-christoffer-wallenberg
Last active February 24, 2021 15:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save zocom-christoffer-wallenberg/442fa72b96a113a035b6b5edf0f530a5 to your computer and use it in GitHub Desktop.
Save zocom-christoffer-wallenberg/442fa72b96a113a035b6b5edf0f530a5 to your computer and use it in GitHub Desktop.

Lösenordsgenerator

I denna övning ska du bygga en lösenordsgenerator med flera nivåer.

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.

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
  • En specialkaraktär(!"#$%&'()*+,-./:;<=>?@[]^{|})

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

För att kunna använda API:et behöver hasha det genererade lösenordet med SHA-1. För att göra detta använd nedanstående npm-modul som heter js-sha1 och för att kunna använda npm-moduler i vanilla JS så behöver du kunna bundla ditt javascript och då kan du använda browserify.

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