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.
s2 f7e565bcc7 1.1.3 4 months ago
lib throw exception if string is not selected length 4 months ago
.gitignore initial commit 5 years ago
.jscsrc add jscsrc file so it's easier to contribute code 2 years ago 1.1.0 changelog 2 years ago Clarify that the default char set returned is base64 encoded 1 year ago
package.json 1.1.3 4 months ago
tests.js add one more test 2 years ago


Node.js module that generates a cryptographically secure random string with a given length


var srs = require('secure-random-string');

Default behavior: Generate a random Base64 encoded string 32 characters long.

This may include alphanumeric characters as well as the following characters: +, /, =.

// Sync
var result = srs();

// Async
srs(function(err, sr) {

Options: length

Optionally, you can specify a ‘length’ option to specify a length.

// sync
var result = srs({length: 256});

// async
srs({length: 256}, function(err, sr) {

Options: alphanumeric

Optionally, you can specify a ‘alphanumeric’ option to get a alphanumerical chars only.

// sync
var result = srs({alphanumeric: true});

// async
srs({alphanumeric: true}, function(err, sr) {

Error handling

An error is possible if there is not enough accumulated entropy to generate cryptographically strong data. In other words, this will not block even if all entropy sources are drained. Note that the sync API throws an exception, while the async API returns the error to the callback.


Simon Santoro


Mark Stosberg
Sandro Gomez