1
0
mirror of https://github.com/S2-/securerandomstring.git synced 2025-08-02 10:20:05 +02:00

Add support for 'sync' API. Updates code, tests and docs.

This commit is contained in:
Mark Stosberg
2015-08-06 12:06:40 -04:00
parent 350fd45086
commit a1cab50548
4 changed files with 52 additions and 21 deletions

View File

@@ -1,33 +1,52 @@
# secure-random-string
a node module that generates a secure random string with a given length
Node.js module that generates a cryptographically secure random string with a given length
## Usage
`require` it
```
```javascript
var srs = require('secure-random-string');
```
### Default behavior: Generate a random string 32 characters long.
generate a random string that is 32 chars long (the default)
```
```javascript
// Sync
var result = srs();
// Async
srs(function(sr) {
console.log(sr);
});
```
### Options: length, urlsafe
generate a random string that is 256 chars long
```
srs({length: 256}, function(sr) {
Optionally, you can specify a 'length' option to specify a length.
The 'urlsafe' option replaces a potential `+` character with `-` and the `/` character
with `_`, created a valid [base64url](https://en.wikipedia.org/wiki/Base64) format string.
```javascript
// sync
var result = srs({length: 256, urlsafe:true});
// async
srs({length: 256, urlsafe:true}, function(sr) {
console.log(sr);
});
```
## Author
[Simon Santoro](https://github.com/S2-)
## Contributors
[Mark Stosberg](https://github.com/markstos)
## License
[MIT](https://github.com/aheckmann/node-ses/blob/master/LICENSE)
generate a random string that is 20 chars long and is url safe (can be used as a url token)
```
srs({length: 20, urlsafe: true}, function(sr) {
console.log(sr);
});
```

View File

@@ -9,11 +9,17 @@ function srs(options, cb) {
}
var length = options['length'] || 32;
// async path
if (cb) {
crypto.randomBytes(length, function(ex, buf) {
if (ex) throw ex;
cb(_finish(buf));
return cb(_finish(buf));
});
}
// sync path
else {
return _finish(crypto.randomBytes(length));
}
function _finish (buf) {
var string = buf.toString('base64');

View File

@@ -1,6 +1,6 @@
{
"name": "secure-random-string",
"version": "0.0.2",
"version": "0.1.0",
"description": "Generates a secure random string with a given length",
"main": "lib/secure-random-string.js",
"scripts": {
@@ -16,6 +16,7 @@
"string"
],
"author": "Simon Santoro",
"contributors": ["Mark Stosberg <mark@rideamigos.com>"],
"license": "MIT",
"bugs": {
"url": "https://github.com/S2-/securerandomstring/issues"

View File

@@ -28,7 +28,7 @@ var test = function(name, what, ref, c) {
//the actual tests
// async tests
srs(function(sr) {
test('generate a random string 32 chars long',
sr.length,
@@ -58,3 +58,8 @@ srs({length: 256, urlsafe: true}, function(sr) {
});
// sync tests
test('generate a random string 32 chars long (sync)', srs().length, 32);
test('generate a random string 1 chars long (sync)', srs({length:1}).length, 1);
test('generate a random string 256 chars long (sync)', srs({length:256}).length, 256);
test('generate a urlsafe random string 256 chars long (sync)', srs({length:256, urlsafe:true}).length, 256);