生成一個足夠安全同時相對好記(如果你的英語詞彙量足夠大的話)的密碼。
靈感來自 這則xkcd漫畫。
30行好難寫啊!寫了半天沒寫滿,加了註釋還是不滿30行。
沒辦法,只好再補一個python的版本填滿30行。
// by Jakukyo Friel
// under Apache License v2
// Yet another random passphrase generator.
// Inspired by http://xkcd.com/936/
// But I use 5 words instead of 4, since 5 words will achieve an entropy of
// log(99171)/log(2)*5 = 82.988
// This is enough.
// NIST recommends 80-bits for the most secure passwords.
var fs = require('fs');
var pickrand = require('pickrand')
var wordlist = fs.readFileSync('/usr/share/dict/words').toString().split("\n");
generate_random_passwd = function() {
pickrand(wordlist)
for (var i=0;i<5;i++) 30="" {="" Avoid="" characetr="" `'`="" in="" passphrase,="" since="" some="" broken^W="" websites="" does="" not="" support="" it.="" process.stdout.write(pickrand(wordlist).replace(="" '="" g,="" '').replace(="" \n$="" ,="" ''))="" };="" generate_random_passwd()="" A="" python="" version="" I="" wrote="" before.="" (To="" fill="" lines.)="" import="" random="" wordlist="open('/usr/share/dict/words').readlines()" pick="lambda" :="" random.choice(wordlist)="" for="" i="" range(5):="" print(pick().replace('\'',="" '').strip(),="" end="" )="" <="" code=""/>
使用方法:
將上述代碼保存爲文件,比如generate_pass.js,然後node運行即可:
node generate_pass.js
依賴:
- pickrand模塊,可用
npm install pickrand安裝。 - 因爲供抽取的詞彙來自系統自帶的詞典,所以需要在unix系統上運行。