Nodejs中的Java密码

我有任务将这个Java解密方法转换成Nodejs,但是我不太了解这个Java的东西。 我对PBEWithMD5AndDES特别困惑。 请向我解释一下,如何在Nodejs中重现这个解密。

 private void readFile() { try { Cipher cipher = getCipher(2, "secret"); DataInputStream dis; dis = new DataInputStream(new CipherInputStream(someInputStream, cipher)); String field1 = dis.readUTF(); String filed2 = dis.readUTF(); dis.close(); } catch (Exception e) { } } private Cipher getCipher(int mode, String password) throws Exception { Random random = new Random(43287234L); byte[] salt = new byte[8]; random.nextBytes(salt); PBEParameterSpec pbeParamSpec = new PBEParameterSpec(salt, 5); SecretKey pbeKey = SecretKeyFactory.getInstance("PBEWithMD5AndDES").generateSecret(new PBEKeySpec(password.toCharArray())); Cipher cipher = Cipher.getInstance("PBEWithMD5AndDES"); cipher.init(mode, pbeKey, pbeParamSpec); return cipher; } 

我假设我必须做类似的东西。

 var inputStream = fs.createReadStream("file"); var decipher = crypto.createDecipher("des", "secret", new Buffer("0C9D4AE41E8315FC", "hex")); inputStream.pipe(decipher).pipe(process.stdout); 

PBEWithMD5AndDES是指encryptionalgorithm。 从Javaencryption扩展(JCE)参考指南 :

PBEWithMD5AndDES :RSA实验室定义的基于密码的encryptionalgorithm,“PKCS#5:基于密码的encryption标准”,版本1.5,1993年11月。注意,该algorithm暗示CBC为密码模式,PKCS5Padding为填充scheme,不能与任何其他密码模式或填充scheme一起使用。

您可能需要编写一些代码来执行node.js中的实际解密。 这里是一个ruby的实现 ,可以帮助你开始。