Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java加密(jasypt)和nodejs解密_Java_Node.js_Encryption_Jasypt - Fatal编程技术网

java加密(jasypt)和nodejs解密

java加密(jasypt)和nodejs解密,java,node.js,encryption,jasypt,Java,Node.js,Encryption,Jasypt,我正在尝试解密编码的字符串(它实际上是使用bouncyCastle提供程序在java中编码的)。因为我在nodejs中没有看到“pbewithsha256和256biates-CBC-BC”的任何等效算法。您能告诉我如何在nodejs中解密encryptedValue(它是用java加密的)吗 我尝试了几种方法,但没有找到解决办法 来自Java: 以下是方法 bouncyCastle提供程序 Algo#PBEWITHSA256和256BITAES-CBC-BC 将DOUTPUTTYPE编码为“十

我正在尝试解密编码的字符串(它实际上是使用bouncyCastle提供程序在java中编码的)。因为我在nodejs中没有看到“pbewithsha256和256biates-CBC-BC”的任何等效算法。您能告诉我如何在nodejs中解密encryptedValue(它是用java加密的)吗

我尝试了几种方法,但没有找到解决办法

来自Java: 以下是方法

  • bouncyCastle提供程序
  • Algo#PBEWITHSA256和256BITAES-CBC-BC
  • 将DOUTPUTTYPE编码为“十六进制”
  • 我们得到的结果是字符串,它是十六进制字符串

    来自Nodejs: 我尝试使用nodejs加密包解密

  • 从十六进制字符串转换回数组值
  • 使用pbkdf2sync使用sha256创建密钥
  • 试图使用crypto.createDecipherIv解密数据 但不知何故,我无法在nodejs中解密

  • 有人能给我建议一下方法吗。

    PBE方案不是PBKDF2(PKCS8)的一个实例;这是PKCS12 PBE方案的一个实例,该方案在概念上相似,但在细节上却截然不同,这在加密中至关重要。您可以通过查找OID::-)来“轻松”地说出这一点

    我没有看到任何迹象表明nodejs crypto公开了这个方案或PKCS12,尽管它在内部使用了OpenSSL,OpenSSL确实实现了这两个方案

    您可以按照中的规范自己编写代码(事实上,尽管文档中说它已被弃用,但它仍然被广泛使用)


    或者(纯js)确实支持PKCS12使用未提及的(内部)模块
    forge.pbe.generatePkcs12Key
    (实际上是key和IV),这在快速扫描(但未测试)中对我来说是正确的

    感谢您的回复dave,我会看一看,并尝试使用forge.pbe.generatepkcs12Key生成密钥和iv,然后进行检查。与java和nodejs相比,我发现主要的问题是key和iv值。嗨,Dave,我在尝试用forge解密时遇到了一些问题。我的encryptedMessage是byteArray,当我试图转换为forge.util.createBuffer时,它返回的数据值为空。createBuffer(encryptedMessage)非常感谢您的帮助dave,它对我很有用。使用forge.pbe.generatePkcs12Key提供了成功的密钥和iv,现在能够解密数据。