All Projects → sethblack → javascript-strong-password-generator

sethblack / javascript-strong-password-generator

Licence: Apache-2.0 license
JavaScript Strong Password Generator: based on Jeff Atwood's Post "Password Rules Are Bullshit".

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to javascript-strong-password-generator

Pgen
Command-line passphrase generator
Stars: ✭ 68 (+223.81%)
Mutual labels:  password-generator, random, password
Go Password
A Golang library for generating high-entropy random passwords similar to 1Password or LastPass.
Stars: ✭ 317 (+1409.52%)
Mutual labels:  password-generator, password
Xbruteforcer
X Brute Forcer Tool 🔓 WordPress , Joomla , DruPal , OpenCart , Magento
Stars: ✭ 261 (+1142.86%)
Mutual labels:  password-generator, password
Diceware
Generate secure passwords you can actually remember!
Stars: ✭ 66 (+214.29%)
Mutual labels:  password-generator, password
genpw
Password Generator
Stars: ✭ 32 (+52.38%)
Mutual labels:  password-generator, password
PasswordGenerator
A simple C# helper class for ASP.NET Core to generate a random password with custom strength requirements: min length, uppercase, lowercase, digits & more
Stars: ✭ 27 (+28.57%)
Mutual labels:  password-generator, password
Strongbox
A KeePass/Password Safe Client for iOS and OS X
Stars: ✭ 586 (+2690.48%)
Mutual labels:  password-generator, password
PasswordX
Offline password manager for iOS/macOS
Stars: ✭ 26 (+23.81%)
Mutual labels:  password-generator, password
Ttpassgen
密码生成 flexible and scriptable password dictionary generator which can support brute-force、combination、complex rule mode etc...
Stars: ✭ 68 (+223.81%)
Mutual labels:  password-generator, password
Go Diceware
Golang library for generating passphrases via the diceware algorithm.
Stars: ✭ 69 (+228.57%)
Mutual labels:  password-generator, password
Passwd
A beautiful, cross-platform, encrypted password manager 🔐
Stars: ✭ 82 (+290.48%)
Mutual labels:  password-generator, password
diceware
Improved diceware passphrases
Stars: ✭ 16 (-23.81%)
Mutual labels:  password-generator, password
lockd
Generate strong passwords and save them in Keychain. Made with SwiftUI
Stars: ✭ 38 (+80.95%)
Mutual labels:  password-generator, password
MasterPassX
A deterministic stateless password generator.
Stars: ✭ 21 (+0%)
Mutual labels:  password-generator, password
OormiPass
Free open source cross platform password manager
Stars: ✭ 50 (+138.1%)
Mutual labels:  password-generator, password
Passmaker
可以自定义规则的密码字典生成器,支持图形界面 A password-generator that base on the rules that you specified
Stars: ✭ 363 (+1628.57%)
Mutual labels:  password-generator, password
FlowerPassword
🌸花密,不一样的密码管理器
Stars: ✭ 37 (+76.19%)
Mutual labels:  password-generator, password
LAPSforMac
Local Administrator Password Solution for Mac
Stars: ✭ 29 (+38.1%)
Mutual labels:  password-generator, password
Vault Secrets Gen
A Vault secrets plugin for generating high entropy passwords and passphrases.
Stars: ✭ 238 (+1033.33%)
Mutual labels:  password-generator, password
Pwgen
macOS password generator
Stars: ✭ 130 (+519.05%)
Mutual labels:  password-generator, password

Javascript Strong Unicode Password Generator

Abracadabra by taleas.com

This tool is based on Jeff Atwood's Post "Password Rules Are Bullshit".

You can view a working demo at https://www.sethserver.com/unicode-random-password-generator.html

It currently uses six unicode blocks, but I don't see any reason why one can't use them all; this just makes the best looking passwords.

Installation

npm i javascript-strong-password-generator

Basic Usage

This is a quick out-of-the-box usage example. This is not how you'd use it in production if you want it to be secure, but it will give you a decent random unicode password.

const jsspg = require('javascript-strong-password-generator');

jsspg.init();
const newPassword = jsspg.generate();

console.log(newPassword);

Command-line Usage

JSSPG includes a simple command-line app that will generate a single random password seeded by your local environment.

$ js-spg
ƗÇŒk😪Ư2ëjOåęğ⚎Ŭ☦Ƙ🙅ēňxę😣☨😺Ú

Advanced Usage

To reduce predictability add entropy from dynamic sytem state inforation such as CPU usage, number of active processes, availalbe ram and disk io.

const jsspg = require('javascript-strong-password-generator');
const si = require('systeminformation');
const sha512 = require('js-sha512');

let entropyval;

function entropyAccumFunction() {
  return new Promise(async (resolve) => {
    const cpuSpeed = await si.cpu();
    const processes = await si.processes();
    const disksIO = await si.disksIO();
    const memory = await si.mem();

    entropyval = sha512(`${JSON.stringify(cpuSpeed)}:${JSON.stringify(processes)}:${JSON.stringify(disksIO)}:${JSON.stringify(memory)}`);

    resolve();
  });
}

function entropyFunction() {
  return entropyval;
}

async function run() {
  await entropyAccumFunction();

  jsspg.init({
    timeBasedEntropy: false,
    entropyFxn: entropyFunction,
  });

  process.stdout.write(`${jsspg.generate()}\n`);
}

run();

Building for Browsers

This will generate a ./build/jsspg.min.js file for use in a web browser.

$ npm run webpack

Basic Browser Usage

<script src="js/jsspg.min.js"></script>
<script>
(function () {
  jsspg.init();

  var newPassword = jsspg.generate()
  alert(newPassword);
})();
</script>

Core Concept

"Password Rules Are Bullshit".

API

jsspg.init(options)

Options [{ k: v }]

  • entropyFxn [function fxn()]: Custom entropy function. Must return an Array or string of length fortuna.entropySz (128 by default)
  • timeBasedEntropy [bool]: Detaches the reseeding of the algorithm from the call to random().
  • accumulateTimeout [int]: The amount of time in milliseconds between each timeBasedEntropy call. Requires timeBasedEntropy to be true.

jsspg.generate(passwordLength)

Generates a random Unicode password of length passwordLength (length is Unicode characters, not bytes).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].