用node.js和java进行AES/ECB/PKCS5Padding算法加密结果不一样,求指教

chenshen0415 发布于 2014/01/10 17:21
阅读 4K+
收藏 0

这是我的node.js代码:

function encode(key,data){
    var cipher = crypto.createCipher('aes-128-ecb',key);
    var crypted= cipher.update(new Buffer(data),'utf8','base64');
    crypted+= cipher.final('base64');
    return    crypted;
}

这是我的java代码:

public static byte[] encrypt(byte[] data, byte[] key) {
CheckUtils.notEmpty(data, "data");
CheckUtils.notEmpty(key, "key");
if(key.length!=16){
throw new RuntimeException("Invalid AES key length (must be 16 bytes)");
}
try {
SecretKeySpec secretKey = new SecretKeySpec(key, "AES"); 
byte[] enCodeFormat = secretKey.getEncoded();
SecretKeySpec seckey = new SecretKeySpec(enCodeFormat,"AES");
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");// 创建密码器
cipher.init(Cipher.ENCRYPT_MODE, seckey);// 初始化
byte[] result = cipher.doFinal(data);
return result; // 加密
} catch (Exception e){
throw new RuntimeException("encrypt fail!", e);
}
}
估计是填充方式的问题,node.js加密出来的结果有错,请大神求助

以下是问题补充:

@逍遥紫龙:我也遇到同样的问题了,qq多少我们交流下,一起想办法。我的:二863515010。 (2014/01/11 23:15)
加载中
0
清凌渡
清凌渡

lz解决了吗? 

krisye
krisye
请问下你解决了吗
0
krisye
krisye

请问下怎么解决

返回顶部
顶部