Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function generateAuthCode(secret) {
- secret = new Buffer(secret, 'base64');
- var time = Math.floor(Date.now() / 1000);
- var buffer = new Buffer(8);
- buffer.writeUInt32BE(0, 0); // This will stop working in 2038!
- buffer.writeUInt32BE(Math.floor(time / 30), 4);
- var hmac = require('crypto').createHmac('sha1', secret);
- hmac = hmac.update(buffer).digest();
- var start = hmac[19] & 0x0F;
- hmac = hmac.slice(start, start + 4);
- var fullcode = hmac.readUInt32BE(0) & 0x7fffffff;
- var chars = '23456789BCDFGHJKMNPQRTVWXY';
- var code = '';
- for(var i = 0; i < 5; i++) {
- code += chars.charAt(fullcode % chars.length);
- fullcode /= chars.length;
- }
- return code;
- };
- generateAuthCode('fWkXbmF1M6QfnGUzy+Z2RUb23JE=')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement