社区
Java EE
帖子详情
JAVA 解压有密码的ZIP文件(密码已知)
我在深圳搬砖-Justin
2010-01-11 12:14:17
org.apache.tools 解压已经实现
不知道有密码应该如何解决....
不要使用Windows自带的 winrar
...全文
1371
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)
蓝丽留言版
既然看到了本帮助
文件
,那相信此时您已将本系统
压
缩包(rar,
zip
)
解
压
首先,请确认您的服务器操作系统支持运行Asp.net,IE版本在5.5以上,或者您有远程虚拟主机 若您的操作系统不支持Asp.net,那请你先安装,如何安装请...
CMSC434_IA05:IA05
解
压
到已
知
目录 打开安卓开发工作室 点击“导入项目”(Android Development Studio > 快速入门 > 导入项目) Whem提示,在
文件
夹“CMSC434-IA05-master”CMSC434-IA05-master(
文件
夹,提取自CMSC434-IA05-master...
java
zip
文件
解
压
(含有
密码
解
压
)
<dependency> <groupId>net.lingala.
zip
4j</groupId> <artifactId>
zip
4j</artifactId> <...import
java
.io.File;...import
java
.io.IOException;...import
java
.util.
Java
远程下载
zip
文件
在进行C站的
Java
认证C4的模拟考试中遇到了一道关于远程下载
zip
文件
并
解
压
到指定目录中,再对
解
压
后的
文件
进行单独的加密的题目,在模拟考试结束后又对内容进行一次实现,在实现的过程百度了很多的内容,但是很少能够...
java
字符串生成
zip
文件
和
解
读
zip
java
生成
zip
和读取
zip
Java EE
67,515
社区成员
225,878
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章