JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
433ddbb7c950c081784c25b22748757946f572a9
[four-random-words.git] / four-words.coffee
1 fs = require 'fs'
2 async = require 'async'
3 crypto = require 'crypto'
4
5 async.parallel [
6                 (callback) -> crypto.randomBytes 12, callback
7                 (callback) -> fs.readFile 'chosen-few.txt', 'utf8', callback
8         ], (err, [rnd, data]) ->
9                 if err
10                         throw err
11
12                 words = []
13                 for word in data.split(/\n/)
14                         words.push word
15
16                 password = []
17                 for i in [0..3]
18                         random = rnd[i] << 16 | rnd[i+1] << 8 | rnd[i+2]
19                         console.log rnd[i], rnd[i+1], rnd[i+2], random
20                         password.push words[random % words.length]
21                 console.log password.join ' '