增加sha256Sign方法;uuid增加配置

master 1.3.0
宇天 2019-06-17 17:11:53 +08:00
parent 9f5580edfa
commit 704a806e49
3 changed files with 35 additions and 6 deletions

View File

@ -65,7 +65,7 @@ crypto.md5('hello world', 'base64') // XrY7u+Ae7tCTyyK7j1rNww==
### md5Sign(file)
- file `<String>`
> 该方法用于计算文件的md5签名`file`即为文件的绝对路径。
> 该方法用于计算文件的md5签名`file`即为文件的路径。
```javascript
crypto.md5Sign('xx.jpg')
@ -89,7 +89,7 @@ crypto.sha1('hello world', 'base64') // Kq5sNclPz7QV2+lfQIuc6R7oRu0=
### sha1Sign(file)
- file `<String>`
> 该方法用于计算文件的sha1签名`file`即为文件的绝对路径。
> 该方法用于计算文件的sha1签名`file`即为文件的路径。
```javascript
crypto.sha1Sign('xx.jpg')
@ -103,6 +103,13 @@ crypto.sha1Sign('xx.jpg')
> 自然这方法,也没啥好说的了。
### sha256Sign(file)
- file `<String>`
> 都懂的。
### base64encode(str[, urlFriendly])
- str `<Number>` | `<String>` | `<Buffer>`

View File

@ -116,9 +116,11 @@ module.exports = {
},
// 返回一个如下格式的 xxxxxxxx-xxxx-xxxx-xxxxxxxx 的唯一ID
uuid() {
uuid(line = true) {
let rand = CRYPTO.randomBytes(8).toString('hex')
let now = (Date.now() / 1000).toString(16).slice(0, 8)
let pipe = line ? '-' : ''
if (this.__stamp__ === now) {
this.__inc__++
} else {
@ -127,8 +129,15 @@ module.exports = {
}
rand = this.__inc__.toString(16) + rand
rand = rand.slice(0, 4) + '-' + rand.slice(4, 8) + '-' + rand.slice(8, 16)
return this.__stamp__ + '-' + rand
return (
this.__stamp__ +
pipe +
rand.slice(0, 4) +
pipe +
rand.slice(4, 8) +
pipe +
rand.slice(8, 16)
)
},
/**
@ -205,6 +214,19 @@ module.exports = {
return this.hash('sha256', str, encoding)
},
/**
* [sha256Sign 获取文件的sha256签名]
* @param {Str} file [文件路径]
*/
sha256Sign(file) {
if (!FS.existsSync(file)) {
return null
}
let fileStream = FS.readFileSync(file)
return this.hash('sha256', fileStream)
},
/**
* [base64encode base64加密]
* @param {Str/Num/Buffer} str [要加密的字符串]

View File

@ -1,6 +1,6 @@
{
"name": "crypto.js",
"version": "1.2.1",
"version": "1.3.0",
"description": "原生crypto加密模块的二次封装,简化常用加密函数的使用",
"keywords": ["md5", "sha1", "base64", "fivejs", "crypto"],
"author": "yutent <yutent@doui.cc>",