Giter Site home page Giter Site logo

paulbryden / passphrasegenerator Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rddunphy/passphrasegenerator

0.0 1.0 0.0 526 KB

A grammatical passphrase generator website.

Home Page: https://rddunphy.github.io/PassphraseGenerator

License: MIT License

CSS 1.55% HTML 15.06% JavaScript 83.40%

passphrasegenerator's Introduction

Grammatical Passphrase Generator

This is a web app for generating passphrases that form grammatically correct sentences.

FAQ

What's a passphrase?

Passphrases are short sequences of common words that can be used as passwords. Because they are longer and more memorable than the sorts of passwords most people choose, they are generally considered to be more secure.

Why grammatically correct?

Sequences of words are easier to remember when they form sentences, even if those sentences are nonsensical.

But doesn't that make them less secure?

Well, yes... but it turns out not by much. In this case, knowing that an adjective is likely to be followed by a noun only reduces the possible number of words by half, or by one bit of entropy. This is offset by having grammatical variation, such as singulars and plurals, or past or present tenses.

Wait, what's entropy?

Entropy is a measure of the amount of information contained in a password. Each additional bit of entropy means it would take an attacker twice as long to crack your password. Based on the number of words used by this generator, passphrases with 4 or 5 words have an entropy of around 40-50 bits.

How can it "take centuries to crack" if it's only 40-50 bits of entropy?

The calculations provided by zxcvbn are based on blind entropy, in other words they're not assuming any knoweledge of the type of password that is being used. On the other hand, the 40-50 bits of entropy are calculated based on the number of possible phrases generated by this site - in other words, it is a measure of how secure the passwords are if you're being targetted by an attacker who knows that you get your passwords from this site. In most cases, this is an extremely conservative estimate, and the longer estimate provided by zxcvbn is more likely to be accurate.

So how does it work?

For simplicity, the passphrases all follow the same grammatical construction: noun phrase, verb, noun phrase. The noun phrases may contain adjectives and may have definite or indefinite articles, and the verb can be either present or past tense. The words are selected at random from lists of 2048 nouns, adjectives, and verbs.

I still can't remember a million different passwords, even if they're sentences...

The best solution to this problem is to use a password manager, such as LastPass or 1Password. These are apps that will remember most of your passwords for you, and automatically fill them in on websites. This page is meant for the few occasions that you can't use a password generator and actually have to remember your passwords, such as for computer logins.

The worst solution is to reuse the same password over and over again for different services. If you do this, the moment one website you use gets hacked because it has poor security, all of your accounts are vulnerable. Never reuse passwords.

Hang on, should I really be getting my passwords from a website?

Well, ideally not. But the phrases from this site are generated locally on your computer, and are never sent to a server. The source code for this project is open source and is published on GitHub, so you can review it to make sure it does what I say.

I've found a bug!

Great! Let me know by opening an issue here and I'll fix it.

passphrasegenerator's People

Contributors

rddunphy avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.