优化uuid

master 1.1.3
宇天 2018-07-02 01:53:02 +08:00
parent 9319bea6da
commit e5aefc407d
2 changed files with 13 additions and 4 deletions

View File

@ -11,6 +11,8 @@ const FS = require('fs')
module.exports = { module.exports = {
origin: CRYPTO, origin: CRYPTO,
__stamp__: '',
__inc__: 0,
hash(mode, data, outEncode) { hash(mode, data, outEncode) {
let sum = CRYPTO.createHash(mode) let sum = CRYPTO.createHash(mode)
@ -97,10 +99,17 @@ module.exports = {
// 返回一个如下格式的 xxxxxxxx-xxxx-xxxx-xxxxxxxx 的唯一ID // 返回一个如下格式的 xxxxxxxx-xxxx-xxxx-xxxxxxxx 的唯一ID
uuid() { uuid() {
let rand = CRYPTO.randomBytes(8).toString('hex') let rand = CRYPTO.randomBytes(8).toString('hex')
let stamp = ((Date.now() / 1000) >>> 0).toString(16) let now = (Date.now() / 1000).toString(16).slice(0, 8)
if (this.__stamp__ === now) {
this.__inc__++
} else {
this.__stamp__ = now
this.__inc__ = 0
}
rand = this.__inc__.toString(16) + rand
rand = rand.replace(/^([0-9a-z]{4})([0-9a-z]{4})([0-9a-z]{8})$/, '$1-$2-$3') rand = rand.slice(0, 4) + '-' + rand.slice(4, 8) + '-' + rand.slice(8, 16)
return stamp + '-' + rand return this.__stamp__ + '-' + rand
}, },
/** /**

View File

@ -1,6 +1,6 @@
{ {
"name": "crypto.js", "name": "crypto.js",
"version": "1.1.2", "version": "1.1.3",
"description": "原生crypto加密模块的二次封装,简化常用加密函数的使用", "description": "原生crypto加密模块的二次封装,简化常用加密函数的使用",
"keywords": [ "keywords": [
"md5", "md5",