问题标签 [node-crypto]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - Nodejs 加密 setEngine
我正在尝试使用 crypto.setEngine 函数加载 gost openssl 引擎。唯一可行的方法是指定 dylib 的完整路径(例如“/opt/local/lib/engines/libgost.dylib'”)。但我仍然无法使用加载引擎的摘要。调用 crypto.createSign('md_gost94') 失败,出现“未知消息摘要”错误。
AFAIK node.js 与捆绑的 openssl 一起使用。它包括像 gost 这样的引擎吗?它应该与引擎的外部dylib一起使用吗?
我将 MacOSX 10.10 与 nodejs v0.12.2 一起使用。
谢谢!
更新它在带有系统 libgost.so 模块的 Ubuntu 12.04 系统上运行良好。在 OSX 上,我不得不使用安装了端口的 openssl,因为系统 openssl 已过时。
javascript - Node.js 加密模块 - ECDH
我正在尝试使用crypto 模块在 Node.js 和使用Web Cryptography API的 Web 客户端之间完成密钥交换。
到目前为止,我设法将密钥交换处理到在服务器和客户端上派生共享密钥的地步。在服务器端,我使用了“secp521r1”曲线,在客户端使用了名为“P-521”的等效曲线。
在客户端上,我收到一个长度为 32 字节的共享密钥,我认为这是 256 位 AES-GCM 密钥的正确长度。但在服务器上,我收到一个长度为 66 字节的密钥。下面是生成的密钥的两个示例,一个以 base64 编码,一个为字节数组:
我想我在 Node.js 上错误配置了一些东西,但我在文档中找不到任何关于如何正确操作的提示。
这是我在 Node.js 上提取密钥的方法:
我的问题是:
- 我的假设是否正确,来自 Node.js 的密钥不正确?
- 我需要做什么才能正确提取 AES-GCM 256 位密钥?
- 电流输出是什么意思?
任何指导表示赞赏。
node.js - node.js 加密模块的问题
我正在尝试创建一个 HMAC 用于使用 API 进行身份验证。
但是,我遇到了标准节点加密的一些问题。
查看“身份验证”部分下的此示例:
散列这两个值应该给我一个返回值:cdbf5cc64c70e1485fcf976cdf367960c2b28cfc28080973ce677cebb6db9681
但是,当我使用加密库时,我似乎无法复制它:
返回
和
返回
此外,它们都不同的事实也是一个问题。出于某种原因, createHmac(algorithm, key) 方法对我不起作用。
应该返回
但改为返回:
我正在尝试使用与上面列出的 API 相关的库来调试我在身份验证中收到的错误,但似乎在加密库中遇到了一些错误,这使我无法完成很多有用的调查。
ruby-on-rails - Nodejs 和 Ruby 中的加密
我想要加密一个字符串并传递给 Rails 应用程序,所以我在 Nodejs 和 Ruby 中都找到了加密库。
在 Node.js 中:
结果是:
在红宝石中
结果是:
所以我使用相同的方式和密钥加密相同的字符串,为什么结果不一样?
node.js - 当 unicode 字符时,NodeJS 中的加密失败
我正在尝试使用 NodeJS Crypto 库验证数据完整性。它需要计算 JSON 字符串的 Hmac。
经过一些测试,我已经能够找到问题:只要它包含一个 unicode 字符就会发生。例如:
但是,这会返回错误的 hmac。PHP 中的相同代码与我从第三方服务收到的签名相匹配:
如果我删除 NodeJS 有效负载中的“\u0026”,那么我会得到与 PHP 相同的正确结果。
我在这里做错了吗?
谢谢!
node.js - LockBox / Node Crypto 兼容性
我正在尝试(但失败)在 Delphi 中使用 LockBox 3 破译一条使用 Node.js 的加密库加密的消息。
node.js 代码:
结果是
德尔福代码:
我错过了什么?
javascript - 节点crypto与crypto-js加解密的兼容性
如何使用 crypto 模块(服务器端)和 crypto-js(客户端,react-native)正确加密/解密 node.js 之间的数据?
注意:我在 react-native 项目中使用 cryptojs,因此我不能在客户端使用 crypto。替换加密服务器端不是我的选择。
服务器端代码:
客户端代码
node.js - NodeMCU node.js 加密
我试图在 node.js 和 NodeMCU 之间建立加密通信。经过一番努力,我能够使用 node.js 加密并在 NodeMCU 上解密。反向不起作用。mscdex 的回复有效。因此,为了他人的利益,我修改了 node.js 代码。谢谢。
节点单片机代码:
Node.js 工作代码:
现在再次进行 NodeMCU 端测试:
什么工作?
Node.js 加密在 NodeMCU 上被解密,即使加密的字符串有点不同。
什么不工作?
NodeMCU 的加密字符串没有被 node.js 解密。我收到以下错误:
错误:错误:0606506D:数字信封例程:EVP_DecryptFinal_ex:Decipheriv.Cipher.final (crypto.js:153:26) 处的错误最终块长度错误 (/home/pi/rampion/nodejs/test2. js:22:19) 在对象。(/home/pi/rampion/nodejs/test2.js:43:13) 在 Module._compile (module.js:413:34) 在 Object.Module._extensions..js (module.js:422:10) 在Module.load (module.js:357:32) 在 Function.Module._load (module.js:314:12) 在 Function.Module.runMain (module.js:447:10) 在启动时 (node.js:146 :18)
错误是由于 mscdex 在他的回复中强调的原因。
NodeMCU 不使用 PKCS 填充,但节点的加密模块默认使用/预期它,因此在通过解密时调用 .update() 之前需要禁用它
decipher.setAutoPadding(false); calling
node.js - NodeJS 6加密抱怨弃用消息中的摘要?
我正在尝试在我的 NodeJS 应用程序中使用本机加密模块,但我不断收到弃用消息:
(节点:26)弃用警告:不推荐使用未指定摘要的 crypto.pbkdf2。请指定摘要
我知道这是由于期望摘要向前推进的更改集: https ://github.com/nodejs/node/pull/4047
但是,据我所见,我的代码完全遵循文档中概述的语法。其他人看到我在这里做错了吗?
注意:如果有任何区别,这是在 node:6 的 slim 版本中执行的
javascript - 为什么 crypto.createHash 在新版本中返回不同的输出?
问题
我有crypto.createHash
用于生成md5
哈希的 node.js 模块。
最近我注意到crypto
模块生成的哈希在新版本中有所不同:
代码
Node.js v0.10.0
输出:ab3af8566ddd20d7efc9b314abe90755
Node.js v6.1.0
输出:07625e142e4ac5961de57472657a88c1
问题
我想知道是什么原因导致新版本出现这种情况,我该如何解决?
更新
GitHub 上的类似问题: