Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.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
Javascript 如何在nodejs中进行基于密钥和salt的加密?_Javascript_Java_Node.js_Cryptojs - Fatal编程技术网

Javascript 如何在nodejs中进行基于密钥和salt的加密?

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);

我目前的工作要求我使用这个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);

        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加密库或任何其他方法生成类似的输出