node与java互转aes求助

有个对接需求,对方后台使用java编写的也提供了相关的工具类。但是我们是用node做的后台。所以加解密上出了问题求大神能给帮助一下。
现在输出的内容长度都不一样的。

- java 代码

public static String encryptAES(String content, String aes_key) {
    try {
      KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
      // 需手动指定 SecureRandom 随机数生成规则,否则在Linux上可能生成随机key
      SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
      secureRandom.setSeed(aes_key.getBytes());
      keyGenerator.init(128, secureRandom);
      SecretKey secretKey = keyGenerator.generateKey();

      Cipher cipher = Cipher.getInstance("AES");
      cipher.init(Cipher.ENCRYPT_MODE, secretKey);
      byte[] encrypted = cipher.doFinal(content.getBytes("utf-8"));
      return new String(Base64.encodeBase64(encrypted), "utf-8");
    } catch (Exception e) {
        log.error("报文进行AES加密出错",e);
    }
    return null;
}

- node

const cus_key = CryptoJS.enc.Utf8.parse(aes_key);
const cus_iv = CryptoJS.enc.Utf8.parse(aes_key);
const ciphertext = btoa(
  CryptoJS.AES.encrypt(body, cus_key, {
    iv: cus_iv,
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.Pkcs7
  }).toString()
);
阅读 888
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题