java.util.zip.ZipException: extra field is of length 0 - this is probably not a WinZip AES encrypted entry
at de.idyl.winzipaes.impl.CentralDirectoryEntry.initFromRaFile(CentralDirectoryEntry.java:118)
at de.idyl.winzipaes.impl.CentralDirectoryEntry.<init>(CentralDirectoryEntry.java:74)
at de.idyl.winzipaes.AesZipFileDecrypter.getEntryList(AesZipFileDecrypter.java:130)
at vipshop.hbase.demo.DecryptionZipUtil.unzip(DecryptionZipUtil.java:115)
at vipshop.hbase.demo.DecryptionZipUtil.main(DecryptionZipUtil.java:155)
出现这个异常的原因:
说明加密方式不是AES,所以会找不到目录下的文件夹
改用AES方式,便可解决该问题。
如何用AES方式加密?
请看下列java代码,使用了winzipaes开源项目,他与jdk中自带的zip的区别在于可以实现加密,解密压缩(仅支持AES加密算法),性能方面就不太清楚了,刚刚接入还没有去深度研究。
包括压缩和解压,请参考,如果想要支持更多加密算法,请用zip4j,参考另外一篇文章:

在尝试解压带密码的ZIP文件时遇到错误,原因是加密方式不是AES。通过使用支持AES加密的winzipaes开源项目,可以解决这个问题。文章提供了相关Java代码示例,并建议如果需要支持更多加密算法,可以考虑使用zip4j。
最低0.47元/天 解锁文章
329

被折叠的 条评论
为什么被折叠?



