fix: get rid of math.random in generateUUID

v1.18.x
Barış Soner Uşaklı 3 years ago
parent e0080d9005
commit 81e3c1ba48

@ -290,13 +290,11 @@
const utils = { const utils = {
generateUUID: function () { generateUUID: function () {
/* eslint-disable no-bitwise */ // from https://github.com/tracker1/node-uuid4/blob/master/browser.js
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { const temp_url = URL.createObjectURL(new Blob());
const r = Math.random() * 16 | 0; const uuid = temp_url.toString();
const v = c === 'x' ? r : ((r & 0x3) | 0x8); URL.revokeObjectURL(temp_url);
return v.toString(16); return uuid.split(/[:\/]/g).pop().toLowerCase(); // remove prefixes
});
/* eslint-enable no-bitwise */
}, },
// https://github.com/substack/node-ent/blob/master/index.js // https://github.com/substack/node-ent/blob/master/index.js
decodeHTMLEntities: function (html) { decodeHTMLEntities: function (html) {

@ -1,3 +1,17 @@
'use strict'; 'use strict';
const crypto = require('crypto');
module.exports = require('../public/src/utils'); module.exports = require('../public/src/utils');
module.exports.generateUUID = function () {
// from https://github.com/tracker1/node-uuid4/blob/master/index.js
let rnd = crypto.randomBytes(16);
/* eslint-disable no-bitwise */
rnd[6] = (rnd[6] & 0x0f) | 0x40;
rnd[8] = (rnd[8] & 0x3f) | 0x80;
/* eslint-enable no-bitwise */
rnd = rnd.toString('hex').match(/(.{8})(.{4})(.{4})(.{4})(.{12})/);
rnd.shift();
return rnd.join('-');
};
Loading…
Cancel
Save