问题标签 [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 - 用 CryptoJS 加密.. 用 Node Crypto lib 解密
我正在尝试使用 Crypto.js 进行简单加密,然后使用 Node.js 加密库进行解密。
调用cipher.final('utf8')
给出了错误:
Error: error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt
据我所见,此错误与密钥错误有关,但我不明白这里怎么可能出现这种情况。
node.js - 在 CryptoJS 中加密并在 NodeJS 加密模块中解密
我在这里搜索并用谷歌搜索,但找不到我要找的东西。看起来这应该很容易,但很少有类似的线程没有得到答复。我希望我能得到答案。所以我有这个在 CryptoJS 中加密和解密的小提琴JS Fiddle,到目前为止没问题。代码在这里:
但是当我获取加密字符串并尝试解密时,我无法解密。请参阅此节点小提琴:Node Fiddle,代码为:
理想情况下,mystr 字符串应该向我返回文本“加密我”,但它会显示一些乱码。我知道它应该很容易找到,但我无法理解我做错了什么。在加密方面,我完全是菜鸟。这里有什么帮助吗?
javascript - 在 Node js 中加速 AES 解密
我想创建将显示数据的网页,之前在服务器上解密。在 app.js 中的服务器上,读取一个文件夹中的所有数据,然后对其进行解密。
比数据解密并发送到页面
问题是,解密所有这些文件并发送给客户端大约需要 30 秒。大约有 35 个解密的 txt 文件(每个大约 5mb)。我知道node js是单线程的,没有并发。那么,我怎样才能加快解密过程呢?我是否应该使用 Java/Python 而不是 node js,就我而言,由于多线程和并发性,java 是最适合这个过程的语言。
javascript - 如何将用于创建密码的iv存储在nodejs的createcipheriv中,以供将来解密?
我是密码学新手,我正在使用 nodejs 来提供应用程序。
我的应用程序使用我想在生产之前加密它们的配置文件,当 nodejs 服务器需要这些文件(在生产中)时,它会解密它们。
我crypto.createCipheriv(algo, key, iv)
用来加密。算法是:'aes-256-ctr'。密钥是使用密码创建的:
iv 是通过以下方式生成的:
因此,如果我想解密文件,我需要密钥和 iv。我存储用于生成密钥(散列)的密码,并将其与用户给定的密码匹配,但我如何存储和检索 iv?
当我将 iv(使用 fs.writefile 和 iv const)写入文件并尝试读取它时,当我尝试解密时,我看到了错误:
错误:无效的密钥长度
即使当我在服务器中生成和使用 iv 时,它也会毫无问题地加密/解密。
所以我的问题是:如何存储我使用的 IV 以便以后解密文件?以后尝试解密时如何使用它?
有没有更好的方法/实践来加密配置文件并解密它们?我想为我的应用程序提供加密/散列的个人数据,例如配置数据、用户/密码等。
我的方式是好的还是我走错了方向?我会很感激一些精通加密的用户可以帮助我......
谢谢
php - 在 Nodejs 中加密和在 PHP 中解密
我正在尝试解密最初在 NodeJS 中加密的 PHP 字符串。
PHP:
openssl_decrypt($raw_id, "aes-128-cbc", "s7UbmJpfm56r6CAC6mz7KVZdRc3Fxc4m", 0, null)
这似乎总是回归false
。
Nodejs中的加密:
我基本上想加密,例如,encrypt("Pizza")
在 Nodejs 中,将其发送到 PHP 页面(3879f91a59e9a458db62f905b0a488a1
),然后从那里解密(openssl_decrypt: return Pizza
)。
我知道这段代码不安全,因为我没有使用 IV,但我不确定如何添加。
node.js - 节点“加密”SHA256 哈希模型行为异常
我有一个函数可以获取一个文件并找到它的 SHA256 哈希。每次我重新提交文件时,它都会为同一个文件生成不同的哈希值。
在第一次提交时,它会产生正确的哈希。每次重新提交都会产生一个不正确的哈希值。如果我以相同的顺序重新提交相同的文件,它们都会产生相同的(不正确的)哈希。
我认为缓冲区可能正在增加。或者也许是别的什么?我试图弄清楚如何清除缓冲区数组。
有任何想法吗?
node.js - RSAES-PKCS1- V1_5 使用 NodeJs 加密的公共加密
我正在尝试使用 NodeJs 加密模块将加密数据发送到远程服务器。
根据 API 文档,payload 需要使用 AES-256 算法和随机生成的 KEY 和 IV 进行加密。
然后使用 RSAES-PKCS1-V1_5 标准使用共享私钥对随机生成的 KEY 和 IV [上图] 进行加密。
最后,使用 RSASSA-PKCS1-V1_5 签名方案使用私钥对加密的有效负载进行签名,然后进行 SHA1 哈希处理。
完成后,我编写一个 HTTP 请求并将加密的 KEY、IV、加密的有效负载和签名传递给删除服务器。
在密码学方面我不是专家,所以我确信我在某个地方做错了什么。
服务器能够验证签名,这让我确信共享私钥文件没有问题。
但是,服务器无法解密解密有效负载所需的加密 KEY 和 IV。
我正在使用下面的代码进行测试:
有人可以指出我做错了什么吗?
node.js - NodeJS Crypto randomBytes 到字符串十六进制加倍大小
我在使用 NodeJS 加密和 crypto.randomBtyes 函数时遇到了一个奇怪的问题。我检测到似乎最近才出现在我的 NodeJS / Typescript 3.2 应用程序中的奇怪行为。
该错误本身就有意义:Cipheriv.createCipherBase (internal/crypto/cipher.js:79:18) 处的密钥长度无效
检查返回的密钥长度后,请求的字节数增加了一倍。我说这是“奇怪的”,因为它以前在工作(截至上周星期四/星期五(3/7/2019 - 3/8/2019)但截至今天早上检测到新行为。但是,我没有不运行任何更新,因为希望我遗漏了一些明显的东西。我可以将我的密钥大小更改为我想要的一半,但是,我想看看在我实施黑客攻击之前我是否忽略了一些简单的事情。
这是我的加密实现的一个相当基本的示例。
但是在调用时:
它返回 64 个字符的字符串而不是 32 个字符的字符串。
示例:c8a8437677fcfab679f92c8470ffc34b932f5aaa3296c09f652d2becfe1db8b2(长度为 64 个字符)
这是本文中概述的概念的实现:http: //vancelucas.com/blog/stronger-encryption-and-decryption-in-node-js/
任何帮助将不胜感激。
python - 使用非对称密码术加密大文件
我想用python中的公钥加密文件,非对称方法我真的使用密码学书目和PyCrypto,但所有算法都加密短文本而不是大文件我需要解决我的问题,在密码学书目中我使用危险品模块。我将我的文件转换为字符串格式,所以这是结果:
'数据对于密钥大小来说太长了。加密较少的数据或使用 ValueError: Data too long for key size。加密更少的数据或使用更大的密钥大小。
c# - 解密用 C# 加密的 Node.js 中的文本
我有一些在 C#/.NET 中加密的文本,我想在 Node.js 中解密。我的解密代码在 C# 中工作得非常好,但我无法在 Node.js 中找到解密相同加密文本的代码。下面提到的是.NET中用于解密的代码
Node.js 内置库加密对我没有太大帮助,因为它错误地显示了加密文本。当我使用 npm 中的“Crypto-JS”包时,它没有出错,但是,它也没有给出任何输出。下面是等效的 Node.js
如何找出与上述代码等效的 Node.js?