-
Notifications
You must be signed in to change notification settings - Fork 3
/
gen-keys.js
40 lines (31 loc) · 881 Bytes
/
gen-keys.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
var _ = require('lodash')
var repeat = function(count, fn) {
return _.map(Array(count), fn)
}
var randInt = function(upper){
return Math.floor(Math.random() * upper)
}
var choose = function(choices) {
var i = randInt(choices.length)
return choices[i]
}
var alpha = 'abcdefghijklmnopqrstuvwxyz'.split('')
var upperAlpha = _.invoke(alpha, 'toUpperCase')
var symbols = '!@£$%^&*()_+=-{}[];\'\":\\|,./<>?~`±§'.split('')
var nums = '0123456789'.split('')
var chars = alpha.concat(symbols).concat(upperAlpha).concat(nums)
var makeWord = function(){
return repeat(randInt(10), function(){ return choose(chars) }).join('')
}
var makeInt = function(){
var len = randInt(10)
return repeat(len, function(){ return randInt(9) }).join('')
}
module.exports = {
words: function(len){
return repeat(len, makeWord)
},
ints: function(len){
return repeat(len, makeInt)
}
}