java加密方法等价于node-js-crypto

at0kjp5o  于 2021-07-09  发布在  Java
关注(0)|答案(0)|浏览(208)

这个问题在这里已经有答案了

在节点中加密,在java中解密(4个答案)
node.js decipher不适用于其他密码的密文(1个答案)
node.js中的aes加密与python中预期的解密匹配(1个答案)
三年前关门了。
我有java加密函数代码

public String encrypt(String Data, String keySet) throws Exception {
    byte[] keyByte = keySet.getBytes();
    Key key = generateKey(keyByte);

    Cipher c = Cipher.getInstance("AES");

    c.init(Cipher.ENCRYPT_MODE, key); //2
    byte[] encVal = c.doFinal(Data.getBytes()); //1
    byte[] encryptedByteValue = new Base64().encode(encVal); //3
    String encryptedValue = new String(encryptedByteValue); //4
    return encryptedValue;
}

private static Key generateKey(byte[] keyByte) throws Exception {
    Key key = new SecretKeySpec(keyByte, "AES");
    return key;
}

现在,我尝试在nodejs中使用加密模块实现相同的功能,代码是:-

//buf is string data that i want to encrypt

function makeEncrypt(buf, callback) {
    var enckey = "encryptionkey";
    var cipher = crypto.createCipher(algorithm, enckey)
    var crypted = cipher.update(buf, 'utf8', 'base64')
    crypted += cipher.final('base64');

    console.log("encrypted data is : " + crypted.toString());
    callback(null, crypted);
}

但是两个函数返回的加密数据是不同的我做错了什么?如果有人能帮忙!!提前谢谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题