Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const { randomBytes } = require('crypto')
- const ID_LENGTH = 64
- const escape = string => string
- .replace(/\+/g, '-')
- .replace(/\//g, '_')
- .replace(/=/g, '')
- module.exports = async () => new Promise((resolve, reject) => {
- randomBytes(ID_LENGTH, (error, bytes) => {
- if (error) {
- reject(error)
- } else {
- const [ seconds, nanoseconds ] = process.hrtime()
- resolve(escape(
- crypto
- .createHash('sha512')
- .update(`${bytes.toString('base64')}${seconds}${nanoseconds}`)
- .digest('base64')
- ))
- }
- })
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement