Server IP : 185.86.78.101 / Your IP : 216.73.216.124 Web Server : Apache System : Linux 675867-vds-valikoshka1996.gmhost.pp.ua 5.4.0-150-generic #167-Ubuntu SMP Mon May 15 17:35:05 UTC 2023 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /www/wwwroot/mifepriston.org/node_modules/base64id/lib/ |
Upload File : |
/*! * base64id v0.1.0 */ /** * Module dependencies */ var crypto = require('crypto'); /** * Constructor */ var Base64Id = function() { }; /** * Get random bytes * * Uses a buffer if available, falls back to crypto.randomBytes */ Base64Id.prototype.getRandomBytes = function(bytes) { var BUFFER_SIZE = 4096 var self = this; bytes = bytes || 12; if (bytes > BUFFER_SIZE) { return crypto.randomBytes(bytes); } var bytesInBuffer = parseInt(BUFFER_SIZE/bytes); var threshold = parseInt(bytesInBuffer*0.85); if (!threshold) { return crypto.randomBytes(bytes); } if (this.bytesBufferIndex == null) { this.bytesBufferIndex = -1; } if (this.bytesBufferIndex == bytesInBuffer) { this.bytesBuffer = null; this.bytesBufferIndex = -1; } // No buffered bytes available or index above threshold if (this.bytesBufferIndex == -1 || this.bytesBufferIndex > threshold) { if (!this.isGeneratingBytes) { this.isGeneratingBytes = true; crypto.randomBytes(BUFFER_SIZE, function(err, bytes) { self.bytesBuffer = bytes; self.bytesBufferIndex = 0; self.isGeneratingBytes = false; }); } // Fall back to sync call when no buffered bytes are available if (this.bytesBufferIndex == -1) { return crypto.randomBytes(bytes); } } var result = this.bytesBuffer.slice(bytes*this.bytesBufferIndex, bytes*(this.bytesBufferIndex+1)); this.bytesBufferIndex++; return result; } /** * Generates a base64 id * * (Original version from socket.io <http://socket.io>) */ Base64Id.prototype.generateId = function () { var rand = new Buffer(15); // multiple of 3 for base64 if (!rand.writeInt32BE) { return Math.abs(Math.random() * Math.random() * Date.now() | 0).toString() + Math.abs(Math.random() * Math.random() * Date.now() | 0).toString(); } this.sequenceNumber = (this.sequenceNumber + 1) | 0; rand.writeInt32BE(this.sequenceNumber, 11); if (crypto.randomBytes) { this.getRandomBytes(12).copy(rand); } else { // not secure for node 0.4 [0, 4, 8].forEach(function(i) { rand.writeInt32BE(Math.random() * Math.pow(2, 32) | 0, i); }); } return rand.toString('base64').replace(/\//g, '_').replace(/\+/g, '-'); }; /** * Export */ exports = module.exports = new Base64Id();