diff --git a/Readme.md b/Readme.md index c23ce50..2365453 100644 --- a/Readme.md +++ b/Readme.md @@ -260,7 +260,7 @@ crypto.hmac('md5', '123456', 'sdfvkjfhd') > `mode`为算法类型,常见的有`aes-128-cbc、aes-128-gcm`等等地,很多,具体有哪些可以通过 `this.crypto.getCiphers()` 来查看。 > 其他的参数与上面的HMAC算法相似; `inEncode`即声明要加密的数据是什么编码的,默认根据要加密的数据进行判断。 ->> 需要注意的是, 算法类型为`aes-***-gcm`时, 返回的不是一个字符串, 而是一个对象{ enStr, authTag }, 解密时, 需要提供这个 authTag方可解密 + ```javascript // 这里给出一个AES-128-CBC的加密例子 @@ -271,16 +271,12 @@ crypto.cipher('aes-128-cbc', '123456', 'abcdefg') crypto.cipher('aes-128-cbc', '123456', 'abcdefg', 'utf8', 'hex') // 9aa03d64f87d555f9fc0a95fa6270656 -// 要注意gcm算法的结果 -crypto.cipher('aes-128-gcm', '123456', 'abcdefg') -// { enStr: 'qmo1a4Jz', -// authTag: -// } + // v3.x 之后, decipher()同理 crypto.cipher('aes-128-cbc', '123456', {key}) // 等价于 -crypto.cipheriv('aes-128-cbc', '123456', {key}, EMPTY_IV) // 其中 EMPTY_IV = crypto.scryptSync('', '', 16) +crypto.cipheriv('aes-128-cbc', '123456', {key}, EMPTY_IV) // 其中 EMPTY_IV = Buffer.alloc(16) ``` @@ -308,14 +304,8 @@ crypto.decipher('aes-128-cbc', '9aa03d64f87d555f9fc0a95fa6270656', 'abcdefg', 'h -// 要注意gcm算法的结果 -// authTag: -crypto.decipher('aes-128-gcm', 'qmo1a4Jz', 'abcdefg', authTag) -// 123456 - - ``` > 至于另外的`cipheriv/decipheriv`这2个方法,这里就不细讲了,和上面的这2个是同样的用法,只是要多1个参数`向量(iv)` ->> **`特别要注意的一点是,选择128位的加密算法,那key的长度就必须是16位,256则是32位,依此类推; 算法类型为gcm时,返回的是对象,解密时需要提供authTag `,具体的请看相关文档** \ No newline at end of file +>> **`特别要注意的一点是,选择128位的加密算法,那key的长度就必须是16位,256则是32位,依此类推`,具体的请看相关文档** \ No newline at end of file diff --git a/package.json b/package.json index 9dc7bf4..6692fb0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "crypto.js", - "version": "3.2.0", + "version": "3.2.1", "description": "原生crypto加密模块的二次封装,简化常用加密函数的使用", "keywords": [ "md5",