Javascript 如何在nodejs中进行基于密钥和salt的加密?
我目前的工作要求我使用这个api。现在,这个获取身份验证令牌的api要求我创建一个hashcode,它是对特定格式化字符串的加密。这种加密使用salt和key。他们给出的示例代码是java,如下所示:Javascript 如何在nodejs中进行基于密钥和salt的加密?,javascript,java,node.js,cryptojs,Javascript,Java,Node.js,Cryptojs,我目前的工作要求我使用这个api。现在,这个获取身份验证令牌的api要求我创建一个hashcode,它是对特定格式化字符串的加密。这种加密使用salt和key。他们给出的示例代码是java,如下所示: try { byte[] iv = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; IvParameterSpec ivspec = new IvParameterSpec(iv);
try
{
byte[] iv = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
IvParameterSpec ivspec = new IvParameterSpec(iv);
SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");
KeySpec spec = new PBEKeySpec(secretKey.toCharArray(), salt.getBytes(), 65536, 256);
SecretKey tmp = factory.generateSecret(spec);
SecretKeySpec secretKey = new SecretKeySpec(tmp.getEncoded(), "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, secretKey, ivspec);
return Base64.getEncoder().encodeToString(cipher.doFinal(strToEncrypt.getBytes("UTF-8")));
}
catch (Exception e)
{
System.out.println("Error while encrypting: " + e.toString());
}
现在我们正在使用Nodejs v8.9.0。我以前使用过crypto,但无法理解上面的java代码。crypto提供了方法和步骤。试试这个,如果你卡住了,编辑问题,发布你的NodeJS代码和问题描述。顺便说一下,crypto和CryptoJS是两个不同的库:是一个NodeJS库,是一个JavaScript库。您还可以提供示例输入和预期输出。这将有助于理解我们编写的代码是否使用nodeJS加密库或任何其他方法生成类似的输出