PHP与java之间的AES加密完,在解密是乱码怎么办?
呼风即是雨 2013-03-22 09:39:32 php那边用的是AES加密的默认模式,是什么模式写php的说他用的是默认模式,具体什么他也不知道,
我这边按照网上查找的说php默认加密模式是"AES/ECB/NoPadding",所以java端也用的"AES/ECB/NoPadding"
java代码解密代码如下
// 解密
public static String desEncrypt() throws Exception {
try {
//这里是json数据
String data = "GLlT2TvVua+ndCZjCMZeQpGsuA8CgkeKT8c6NjXGtkb";
String key = "ddwwerqsdertewqw";
String iv = 1234567812345678";
byte[] encrypted1 = new BASE64Decoder().decodeBuffer(data);
Cipher cipher = Cipher.getInstance("AES/ECB/NoPadding");
SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");
IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());
cipher.init(Cipher.DECRYPT_MODE, keyspec,iv);
byte[] original = cipher.doFinal(encrypted1);
String originalString = new String(original);
return originalString;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
但是执行完,打印出来的是乱码:
请问该如何解决