diff --git a/lib/key_generators/dictionary.js b/lib/key_generators/dictionary.js new file mode 100644 index 0000000..5e9db42 --- /dev/null +++ b/lib/key_generators/dictionary.js @@ -0,0 +1,37 @@ +var rand = require('random-js'); +var fs = require('fs') +var dictionary; +var randomEngine; +var random; + +var DictionaryGenerator = function(options) { + //Options + if (!options) + return done(Error('No options passed to generator')); + if(!options.path) + return done(Error('No dictionary path specified in options')); + + //Load dictionary + fs.readFile(options.path,'utf8',(err,data) => { + if(err) throw err; + dictionary = data.split(','); + + //Remove any non alpha-numeric characters + for(var i = 0; i < dictionary.length; i++){ + dictionary[i] = dictionary[i].replace(/\W/g,''); + } + + random = rand.integer(0,dictionary.length); + randomEngine = rand.engines.nativeMath; + }); +}; + +//Generates a dictionary-based key, of keyLength words +DictionaryGenerator.prototype.createKey = function(keyLength) { + var text = ''; + for(var i = 0; i < keyLength; i++) + text += dictionary[random(randomEngine)]; + return text; +}; + +module.exports = DictionaryGenerator;