Path: blob/master/node_modules/@bochilteam/scraper/lib/esm/encryptions/crypto.js
1126 views
import crypto from 'crypto';1export function randomUUID(opts) {2if (typeof crypto.randomUUID === 'function') {3return crypto.randomUUID(opts);4}5const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate6let poolPtr = rnds8Pool.length;7if (poolPtr > rnds8Pool.length - 16) {8crypto.randomFillSync(rnds8Pool);9poolPtr = 0;10}11// eslint-disable-next-line prefer-const12let rnds = rnds8Pool.slice(poolPtr, (poolPtr += 16));13rnds[6] = (rnds[6] & 0x0f) | 0x40;14rnds[8] = (rnds[8] & 0x3f) | 0x80;15return serializeUUID(rnds);16}17export function randomBytes(size) {18return crypto.randomBytes(size).toString('hex');19}20export function createHash(algorithm /* 'md4' | 'md5' | 'sha1' | 'sha256' | 'sha512 */, data) {21return crypto.createHash(algorithm).update(data).digest('hex');22}23const kHexBytes = [];24for (let i = 0; i < 256; ++i) {25kHexBytes.push((i + 0x100).toString(16).substr(1));26}27function serializeUUID(buf, offset = 0) {28return (kHexBytes[buf[offset]] +29kHexBytes[buf[offset + 1]] +30kHexBytes[buf[offset + 2]] +31kHexBytes[buf[offset + 3]] +32'-' +33kHexBytes[buf[offset + 4]] +34kHexBytes[buf[offset + 5]] +35'-' +36kHexBytes[(buf[offset + 6] & 0x0f) | 0x40] +37kHexBytes[buf[offset + 7]] +38'-' +39kHexBytes[(buf[offset + 8] & 0x3f) | 0x80] +40kHexBytes[buf[offset + 9]] +41'-' +42kHexBytes[buf[offset + 10]] +43kHexBytes[buf[offset + 11]] +44kHexBytes[buf[offset + 12]] +45kHexBytes[buf[offset + 13]] +46kHexBytes[buf[offset + 14]] +47kHexBytes[buf[offset + 15]]).toLowerCase();48}49//# sourceMappingURL=crypto.js.map5051