【问题标题】:How to convert Java AES ECB Encryption Code to Nodejs如何将 Java AES ECB 加密代码转换为 Nodejs
【发布时间】:2019-08-11 06:05:21
【问题描述】:

我有用于加密的java代码

public String encrypt() throws Exception {
    String data = "Hello World";
    String secretKey = "j3u8ue8xmrhsth59";
    byte[] keyValue = secretKey.getBytes();
    Key key = new SecretKeySpec(keyValue, "AES");
    Cipher c = Cipher.getInstance("AES");
    c.init(Cipher.ENCRYPT_MODE, key);
    byte[] encVal = c.doFinal(StringUtils.getBytesUtf8(data));
    String encryptedValue = Base64.encodeBase64String(encVal);
    return encryptedValue;
}

它返回与tool here 相同的值(eg5pK6F867tyDhBdfRkJuA==)

我将代码转换为 Nodejs(加密)

var crypto = require('crypto')

encrypt(){
      var data = "Hello World"
      var cipher = crypto.createCipher('aes-128-ecb','j3u8ue8xmrhsth59')
      var crypted = cipher.update(data,'utf-8','base64')
      crypted += cipher.final('base64')
      return crypted;
}

但这给出了不同的值( POixVcNnBs3c8mwM0lcasQ== )

如何从两者获得相同的价值? 我错过了什么?

【问题讨论】:

标签: java node.js aes cryptojs ecb


【解决方案1】:

感谢 dave,现在我在 Java 和 Nodejs/JavaScript 上都得到了相同的结果

var crypto = require('crypto')

encrypt(){
      var data = "Hello World"
      var iv = new Buffer(0);
       const key = 'j3u8ue8xmrhsth59'
      var cipher = crypto.createCipheriv('aes-128-ecb',new Buffer(key),new Buffer(iv))
      var crypted = cipher.update(data,'utf-8','base64')
      crypted += cipher.final('base64')
      return crypted;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多