AES 解密后 进行ZIP解压还原问题
项目中 从webservice 得到了一串BASE64的码 是通过先通过ZIP压缩,然后AES加密,最后BASE64 形成的。
tn63IpL/zfnztSfQDON0GpQlGzMn+zy2RgxEm+XEUsqOuSB9bZJkaCI/YCkJY/j8pkfE/Gv0/cySYq1yf/rSjX8T04O04cBZgyAsmNcuMV7yQYMDgViHith6zYTd8H+C3PlFlyZCmjGXiBs8zdE1GYkuXvXm1GRTVieM0mkZVOImUVNoX5rK167Xmt9TfzG+Gpva1gbTkfqgsxvp1EKsVfZXe/9BE8BGuWqC3GiAOnW1Bcv9CMa3OFVkZ7qHyht6yrewn/tJgHKAKw3C/PTKMu/+Mh/9Pc8FjwpKOyb0Q+VEV+j2NLJaHnNEme+u7+gOs1mtSWd0IVBcXMo8h4Tszk7EbFi+NOkIZvNlxxnGL5Zh5/QUDaJtLCWwU4TBQ74IUNAvah2lRhToMU5ObTij/RwIAQIPYXmyOftn+G3CUGbIfCg5Dg+ibEblZj3j0fMTtKeZpIO6vJQezlHQqXj/8wljPqwrvhYdMxjmAGbkxxU=
就是上面这段。
然后我这边需要通过 AES 解密后 进行ZIP解压。还原出数据。
这是解密 解压的代码,但是结果是什么都解压不出来,百度 GOOGLE 翻了一大堆,还是不行。想问哪位大神写过相关代码,
帮看看这段代码 问题在哪?谢谢了。
tn63IpL/zfnztSfQDON0GpQlGzMn+zy2RgxEm+XEUsqOuSB9bZJkaCI/YCkJY/j8pkfE/Gv0/cySYq1yf/rSjX8T04O04cBZgyAsmNcuMV7yQYMDgViHith6zYTd8H+C3PlFlyZCmjGXiBs8zdE1GYkuXvXm1GRTVieM0mkZVOImUVNoX5rK167Xmt9TfzG+Gpva1gbTkfqgsxvp1EKsVfZXe/9BE8BGuWqC3GiAOnW1Bcv9CMa3OFVkZ7qHyht6yrewn/tJgHKAKw3C/PTKMu/+Mh/9Pc8FjwpKOyb0Q+VEV+j2NLJaHnNEme+u7+gOs1mtSWd0IVBcXMo8h4Tszk7EbFi+NOkIZvNlxxnGL5Zh5/QUDaJtLCWwU4TBQ74IUNAvah2lRhToMU5ObTij/RwIAQIPYXmyOftn+G3CUGbIfCg5Dg+ibEblZj3j0fMTtKeZpIO6vJQezlHQqXj/8wljPqwrvhYdMxjmAGbkxxU=
就是上面这段。
然后我这边需要通过 AES 解密后 进行ZIP解压。还原出数据。
/ZIP解压
public static final String unzip(String compressedStr) {
if (compressedStr == null) {
return null;
}
ByteArrayOutputStream out = null;
ByteArrayInputStream in = null;
ZipInputStream zin = null;
String decompressed = null;
try {
//解开BASE64编码
byte[] compressed = new sun.misc.BASE64Decoder()
.decodeBuffer(compressedStr);
System.out.println(compressed);
//解密
KeyGenerator kgen = KeyGenerator.getInstance("AES");
kgen.init(128, new SecureRandom("QMQWLBKK64WUS1W6".getBytes()));
SecretKey secretKey = kgen.generateKey();
byte[] enCodeFormat = secretKey.getEncoded();
SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");
Cipher cipher = Cipher.getInstance("AES/ECB/NoPadding");// 创建密码器
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] result = cipher.doFinal(compressed);
//解密结束
out = new ByteArrayOutputStream();
in = new ByteArrayInputStream(result);
zin = new ZipInputStream(in);
while(zin.getNextEntry() != null){
byte[] buffer = new byte[result.length];
int offset = -1;
while ((offset = zin.read(buffer,0,buffer.length)) != -1) {
out.write(buffer, 0, offset);
}
}
decompressed = out.toString();
} catch (Exception e) {
e.printStackTrace();
decompressed = null;
} finally {
if (zin != null) {
try {
zin.close();
} catch (IOException e) {
}
}
if (in != null) {
try {
in.close();
} catch (IOException e) {
}
}
if (out != null) {
try {
out.close();
} catch (IOException e) {
}
}
}
return decompressed;
}这是解密 解压的代码,但是结果是什么都解压不出来,百度 GOOGLE 翻了一大堆,还是不行。想问哪位大神写过相关代码,
帮看看这段代码 问题在哪?谢谢了。
...全文
相关推荐
解压加密的zip文件源码
**解密数据**:一旦密码正确,源码就可以使用密码对每个文件的数据部分进行解密。解密算法可能因ZIP版本和设置而异,但通常是基于AES或传统ZIP2算法。4.
网址加密解密程序 -ASP源码.zip
用户在解压前需要输入正确的密码,才能查看和使用其中的内容。7. Web安全: 这个项目也涉及到Web安全问题,因为URL加密是网络安全的一个重要环节。
kobackupdec华为备份文件解密
数据解密:华为备份文件通常采用AES加密算法进行保护,kobackupdec利用解密密钥对加密数据进行解密,以还原原始数据。3.
zip文件256bit的AES加密解密
该项目实现了对ZIP文件使用AES-256算法进行加密和解密的功能,支持中文文件名UTF-8编码。通过集成Bouncy Castle库,利用AesZipFileEncrypter和AesZipFile
java加密解密zip压缩包
解密则是将密文还原为原始的明文。在ZIP压缩包中,我们可以使用标准的ZIP加密算法,如传统的ZIP 2.0加密或更安全的AES(Advanced Encryption Standard)加密。


Web 开发
