社区
Java EE
帖子详情
JAVA 解压有密码的ZIP文件(密码已知)
我在深圳搬砖-Justin
2010-01-11 12:14:17
org.apache.tools 解压已经实现
不知道有密码应该如何解决....
不要使用Windows自带的 winrar
...全文
1425
23
打赏
收藏
JAVA 解压有密码的ZIP文件(密码已知)
org.apache.tools 解压已经实现 不知道有密码应该如何解决.... 不要使用Windows自带的 winrar
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fantasy2436
2010-01-12
打赏
举报
回复
http://blog.alutam.com/2009/10/31/reading-password-protected-zip-files-in-java/
這個應該可以 去看看吧
我在深圳搬砖-Justin
2010-01-11
打赏
举报
回复
[Quote=引用 3 楼 ivy007 的回复:]
Google上搜的:http://poplar1123.javaeye.com/blog/183904
[/Quote]
使用了
Winrar 是通过 cmd命令解压的.
ivy007
2010-01-11
打赏
举报
回复
Google上搜的:http://poplar1123.javaeye.com/blog/183904
我在深圳搬砖-Justin
2010-01-11
打赏
举报
回复
[Quote=引用 1 楼 maer56 的回复:]
现在没有可以实现的,我以前找过,找不到相关文章
[/Quote]
就是找不到 才来提问的
maer56
2010-01-11
打赏
举报
回复
现在没有可以实现的,我以前找过,找不到相关文章
我在深圳搬砖-Justin
2010-01-11
打赏
举报
回复
[Quote=引用 20 楼 bao110908 的回复:]
zip 规范标准中好像是带有加密算法的,但是 JDK 和 Apache 中的 ZIP 没有实现。估计与加密算法的出口限制有关。
[/Quote]
岂不是杯具了
fantasy2436
2010-01-11
打赏
举报
回复
頂!
火龙果被占用了
2010-01-11
打赏
举报
回复
zip 规范标准中好像是带有加密算法的,但是 JDK 和 Apache 中的 ZIP 没有实现。估计与加密算法的出口限制有关。
我在深圳搬砖-Justin
2010-01-11
打赏
举报
回复
to:zhangkai08111
搜索到过
但是 不懂 padding 这个方法是怎么写的
小爽昵称已被占用
2010-01-11
打赏
举报
回复
zip ?
\第一步:剥去密码:
下面方法是解密工作,参数:
srcFile:源文件地址
destfile:解密后的临时文件
pwd:密码
Java code
public static void decrypt(String srcFile, String destfile, String pwd) throws Exception { SecureRandom sr = new SecureRandom(); SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); DESKeySpec dks = new DESKeySpec(padding(Base64.encode(pwd.getBytes()))); SecretKey securekey = keyFactory.generateSecret(dks); Cipher cipher = Cipher.getInstance("DES"); cipher.init(Cipher.DECRYPT_MODE, securekey, sr); InputStream is = new FileInputStream(srcFile); OutputStream out = new FileOutputStream(destfile); CipherOutputStream cos = new CipherOutputStream(out, cipher); byte[] buffer = new byte[1024]; byte[] pwdByte = new byte[20]; int len = is.read(pwdByte); byte[] hashByte = DigisterUtil.getHashEncode(pwd.getBytes()); if (len != 20 || hashByte.length != 20) { throw new RuntimeException("密码错误"); } for (int i = 0; i < 20; i++) { if (pwdByte[i] != hashByte[i]) { throw new RuntimeException("密码错误"); } } int r; while ((r = is.read(buffer)) >= 0) { cos.write(buffer, 0, r); } cos.close(); out.close(); is.close(); }
第二步:用ZipFile和ZipEntry解压缩文件:
Java code
ZipFile zipFile = new ZipFile(上面的临时文件); Enumeration entryEnu = zipFile.entries(); while (entryEnu.hasMoreElements()) { ZipEntry entry = (ZipEntry) entryEnu.nextElement(); is = zipFile.getInputStream(entry); bos = new ByteArrayOutputStream(is.available()); byte[] buff = new byte[8192]; int len = 0; while ((len = is.read(buff)) != -1) { bos.write(buff, 0, len); } bis = new ByteArrayInputStream(bos.toByteArray()); break; } temp.delete();
要注意的是,本程序不一定能解开你的压缩文件,如果是用java.util.zip包下的工具压缩的文件就可以。\
---from
http://topic.csdn.net/u/20091119/16/bd9e7aad-dd90-49d0-a921-40630926d201.html
我在深圳搬砖-Justin
2010-01-11
打赏
举报
回复
[Quote=引用 16 楼 huanqun1020 的回复:]
学习,帮顶
[/Quote]
谢了
huanqun1020
2010-01-11
打赏
举报
回复
学习,帮顶
我在深圳搬砖-Justin
2010-01-11
打赏
举报
回复
[Quote=引用 14 楼 maer56 的回复:]
放弃把,我早就放弃了。哈哈。如果你找到方法了,别忘了也告诉我下
[/Quote]
别啊 哥们... 别放弃啊啊
maer56
2010-01-11
打赏
举报
回复
放弃把,我早就放弃了。哈哈。如果你找到方法了,别忘了也告诉我下
我在深圳搬砖-Justin
2010-01-11
打赏
举报
回复
很纠结的问题
没看到和加密有关的字眼
bayougeng
2010-01-11
打赏
举报
回复
不愿看API就在eclipse里“.”
然后看哪个方法名像,自己试试。
qq77504166
2010-01-11
打赏
举报
回复
学习一下,哈哈
maer56
2010-01-11
打赏
举报
回复
在代码里面用嵌入CMD命令
maer56
2010-01-11
打赏
举报
回复
你要么就用命令方式把,想靠代码完成估计是不可能了
我在深圳搬砖-Justin
2010-01-11
打赏
举报
回复
[Quote=引用 6 楼 bayougeng 的回复:]
查查API啊,不会这么弱智,连设置解压密码的方法都没留吧。
[/Quote]
API 看的头大...
加载更多回复(3)
java
jdk.
zip
解压
"
java
jdk.
zip
"后,你需要根据你的需求选择安装
Java
EE或
Java
ME的SDK。对于
Java
EE,你可以使用其中的
Java
编译器来编译源代码,然后通过应用服务器(如Tomcat或GlassFish)部署你的应用。对于
Java
ME,你可以在...
java
-x86安装包.
zip
1. **
解压
文件
**:首先,你需要使用
解压
缩工具(如7-
Zip
或WinRAR)来
解压
"
java
-x86安装包.
zip
"。这将释放出"jdk-8u261-linux-x64.tar.gz"。 2. **确认架构**:确认你的系统是32位还是64位。如果是32位,那么你需要...
mysql-connector-
java
-8.0.23.
zip
2. **
解压
**:
解压
缩`mysql-connector-
java
-8.0.23.
zip
`,你将得到`mysql-connector-
java
-8.0.23.jar`
文件
。 3. **添加到类路径**: 将`mysql-connector-
java
-8.0.23.jar`添加到你的
Java
项目类路径中,这可以通过IDE...
mysql-connector-
java
-6.0.5.
zip
在标题中提到的“mysql-connector-
java
-6.0.5.
zip
”是一个包含此驱动的压缩
文件
,适用于Mac OS操作系统。这个版本号6.0.5表明它是MySQL Connector/J的第六个主要版本的第五次小更新。 MySQL Connector/J的主要功能...
zip
4j.jar包下载,版本为 2.11.5
它可以用于创建新的
zip
文件
、
解压
现有的
zip
文件
、添加
文件
到现有的
zip
文件
或删除
zip
文件
中的
文件
。该库支持标准的
zip
格式以及PK
Zip
和Win
Zip
扩展格式。此外,它还提供了强大的
密码
保护和压缩算法。 2.11.5是
zip
4j库...
Java EE
67,542
社区成员
225,854
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章