all-node-oracle
Version:
A NodeJS and Oracle DB integration, NodeJS act as http gateway for plsql server pages
39 lines (34 loc) • 880 B
JavaScript
/**
* Created with JetBrains WebStorm.
* User: kaven276
* Date: 12-7-27
* Time: 下午2:30
* generate a GUID across all host:port, and across all the time span,
* and protected by changing secret against next GUID or valid history GUID guessing
*/
var lastMs = Date.now() - 1
, seqInMs
, crypto = require('crypto')
, createHmac = crypto.createHmac
, secret = require('./secret.js')
;
function create(stripe, cb){
var now = Date.now();
if (lastMs === now) {
seqInMs++;
} else {
lastMs = now;
seqInMs = 0;
}
var src = [ stripe , String(now), String(seqInMs)].join(':');
var result = createHmac('md5', secret.getCurrentSecret()).update(src, 'ascii').digest('base64').slice(0, 22);
if (cb) {
cb(result);
} else {
return result;
}
}
exports.create = create;
if (process.argv[1] === __filename) {
console.log(create('a'));
}