我正在将一些服务器端 Java 代码迁移到新的 NodeJS 服务器。我正在寻找 Javascript 中对 Java 的 Cipher.doFinal(byte[]) 的等效方法调用注意,我不能使用 NodeJS 缓冲区,因为它们不支持负字节值。所以要进行加密,我需要一个接受正数和负数数组的方法。
以下是我目前拥有的与此问题相关的所有内容:
节点 JS / Javascript:
var crypto = require('crypto');
var cipher = crypto.createCipher('aes256',key);
Java(javax.crypto.Cipher):
Cipher cipher;
SecretKeySpec skeySpec = new SecretKeySpec(key, "AES");
try {
cipher = Cipher.getInstance("AES");
} catch (NoSuchAlgorithmException e) {
} catch (NoSuchPaddingException e) {
}try {
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
} catch (InvalidKeyException e) {
}
稍后在 Java 代码中,我调用此方法,其中 Iv 表示初始化向量:
byte[] newIv = cipher.doFinal(myIv);
如何在 JavaScript 中获得与在 doFinal Java 方法中相同的结果?