You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							28 lines
						
					
					
						
							721 B
						
					
					
				
			
		
		
	
	
							28 lines
						
					
					
						
							721 B
						
					
					
				'use strict'; | 
						|
 | 
						|
var crypto = require('crypto'); | 
						|
 | 
						|
// This string has length 32, a power of 2, so the modulus doesn't introduce a | 
						|
// bias. | 
						|
var _randomStringChars = 'abcdefghijklmnopqrstuvwxyz012345'; | 
						|
module.exports = { | 
						|
  string: function(length) { | 
						|
    var max = _randomStringChars.length; | 
						|
    var bytes = crypto.randomBytes(length); | 
						|
    var ret = []; | 
						|
    for (var i = 0; i < length; i++) { | 
						|
      ret.push(_randomStringChars.substr(bytes[i] % max, 1)); | 
						|
    } | 
						|
    return ret.join(''); | 
						|
  } | 
						|
 | 
						|
, number: function(max) { | 
						|
    return Math.floor(Math.random() * max); | 
						|
  } | 
						|
 | 
						|
, numberString: function(max) { | 
						|
    var t = ('' + (max - 1)).length; | 
						|
    var p = new Array(t + 1).join('0'); | 
						|
    return (p + this.number(max)).slice(-t); | 
						|
  } | 
						|
};
 | 
						|
 |