- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我创建了一个传递两个缓冲区的密码。 buf1 是它们的键,一个 32 字节的缓冲区,而 buf2,即 IV,也是一个 32 字节的缓冲区,我将其切片为仅使用 16 字节。文档说 cipher.update 和 cipher.final 在未指定任何内容时返回一个缓冲区。这实际上是我希望发生的事情。虽然我想我可以做一个新的 Buffer(crypted, 'binary') 来转换它,但我想知道我是否做错了什么。
> var cipher = crypto.createCipheriv('aes-256-cbc', buf1, buf2.slice(0,16));
undefined
> var crypted = cipher.update(new Buffer('this is some test'));
undefined
> crypted += cipher.final();
'!t\u001f\u0004>.\u0012\u0001���K\u001bSiA�]3\u0017�6�&�.��\u0015�V?'
0> Buffer.isBuffer(crypted)
false
http://nodejs.org/api/crypto.html#crypto_class_cipher
我使用的是 node.js 版本 0.10.10,它是最新的稳定版并且应该与链接的文档相匹配:
$ node -v
v0.10.10
这是文档错误还是我的错误?我知道 v0.8 pbkdf2 返回一个二进制字符串而不是缓冲区,现在 0.10.10 它返回一个缓冲区,如文档所述。我希望密码也能与缓冲区一起工作,而不是使用二进制……以保持一致性。
最佳答案
您正在使用 +=
将它们连接起来,这会将缓冲区转换为字符串。您的代码应该更像这样:
var cipher = crypto.createCipheriv('aes-256-cbc', buf1, buf2.slice(0,16));
var cryptedBuffers = [cipher.update(new Buffer('this is some test'))];
cryptedBuffers.push(cipher.final());
// at this point `cryptedBuffers` is an array of buffers which you can turn
// into a single buffer by doing
var crypted = Buffer.concat(cryptedBuffers);
关于javascript - crypto.createCipheriv -> cipher.update + cipher.final 不返回缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16990967/
我使用下面的代码来加密我的node.js 代码中的字符串。 我想了解如何从静态源生成 KEY 和 HMAC_KEY。在我的程序中,到目前为止它是随机生成的。由于它是随机生成的,我无法使用以下算法加密我
我刚刚移至 Node 12.13,并且 crypto.createDecipher 和 crypto.createCipher 遇到一些问题 首先,当我使用这两个函数时,我收到了弃用警告。 const
我在 NodeJS v8.11.0 中使用这段代码生成了一个 base64 编码的 key : const secret = 'shezhuansauce'; const key = crypto.c
我目前正在尝试使用 NodeJS 加密静态数据,我在 Node API 文档中读到 createCipher 不是 recommended . The implementation of crypto
我创建了一个传递两个缓冲区的密码。 buf1 是它们的键,一个 32 字节的缓冲区,而 buf2,即 IV,也是一个 32 字节的缓冲区,我将其切片为仅使用 16 字节。文档说 cipher.upda
我正在尝试使用 node.js 加密模块加密文本。 代码如下: const crypto = require('crypto'); const password = 'password'; const
我很难找到一些信息。有谁知道值是否从 cipher.getAuthTag() 返回 (--> 返回 MAC) 可以公开吗? TL;DR Can a message authentication cod
我看到其他问题询问关于为 encryption 创建初始化向量 (IV)似乎使用随机值是一种选择。但是,我需要生成用于解密的 IV,因此我必须使用基于一些盐加密数据的同一个 IV。 node.js 加
以下是 multipassify 的来源. 该代码在 Node 6 下完美运行,但之后会出现错误。 错误如下所示: crypto.js:184 this._handle.initiv(cipher
在 node.js 的应用程序中,我使用 crypto module用于对称加密/解密。 我正在使用 AES-256-CTR。我最初假设 crypto.createCipher将“只是工作”和“挥手”
我是一名优秀的程序员,十分优秀!