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;
}
}但是执行完,打印出来的是乱码:
请问该如何解决javaphp加密解密
我这边按照网上查找的说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;
}
}但是执行完,打印出来的是乱码:
请问该如何解决javaphp加密解密
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货