1234567891011121314151617181920212223242526272829 |
- 'use strict';
- /* global crypto:true */
- 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);
- }
- };
|