Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Keka cannot decompress compressed files containing GPUImage2 #403

Open
chengkaizone opened this issue May 1, 2019 · 10 comments

Comments

Projects
None yet
4 participants
@chengkaizone
Copy link

commented May 1, 2019

尊敬的Keka开发者,您好!
请原谅我的英文不是很好,我只能用中文来描述使用中遇到的问题!
当我在压缩一个iOS工程项目文件夹时,项目文件夹下有一个第三方的图片处理框架GPUImage2,
框架地址:https://github.com/BradLarson/GPUImage2, 当我执行加密压缩后,执行解压时,会一直要求我输入密码,导致我无法解压内容出来。在不加密的情况下我可以正常解压,或者项目文件夹中不含GPUImage2框架时,加密压缩也可以完成解压。
期待开发者能解决这个问题,希望软件越做越好~

@alvarnell

This comment has been minimized.

Copy link

commented May 1, 2019

Translation from Chinese:

Dear Keka developer, hello!
Please forgive me for my English is not very good, I can only use Chinese to describe the problems encountered in use!
When I compress an iOS project folder, there is a third-party image processing framework GPUImage2 under the project folder.
Frame address: https://github.com/BradLarson/GPUImage2, when I perform encryption and compression, I will always ask for a password when I perform decompression, which prevents me from extracting the content. I can decompress normally without encryption, or when the project folder does not contain the GPUImage2 framework, the encryption compression can also be decompressed.
I hope that developers can solve this problem, I hope the software will be better and better~

@aonez

This comment has been minimized.

Copy link
Owner

commented May 2, 2019

@chengkaizone thanks again for the feedback! I can't reproduce this one. Here a test file containing GPUImage source compressed with the password "test": Test.zip

Let me know what phrase are you using as the password. Or if you can share the file that fails for you that will be very useful.

@aonez aonez self-assigned this May 2, 2019

@aonez aonez added this to the 1.1.15 milestone May 2, 2019

@chengkaizone

This comment has been minimized.

Copy link
Author

commented May 7, 2019

尊敬的Keka开发者,您好!
我看了这个Test.zip压缩文件发现它使用Keka可以解压出来,但是用系统自带的解压工具会一直提示要求输入密码,
屏幕快照 2019-05-07 上午10 08 55
至少我认为能用通用压缩软件解压的压缩算法才是安全的,因为Keka未必有其他平台的版本(比如Windows,Linux),或者未来Keka由于某种原因无法继续维护的话(虽然这不是我们希望看到的),这是一种风险,另外我再测试了一下其他文件夹用Keka压缩(解压密码:test),Keka和系统自带的解压软件是可以解压的,这对于用户来说是安全的,对于其他平台也是可用的,希望关于GPUImage框架的压缩问题还需要优化下,我们期待问题的解决~
谢谢~
以下是压缩文件(密码:test)
uikit.zip

@no-response no-response bot removed the more info needed label May 7, 2019

@alvarnell

This comment has been minimized.

Copy link

commented May 7, 2019

Translation from Chinese

Dear Keka developer, hello!
I read this Test.zip archive and found that it can be decompressed using Keka, but the system's own decompression tool will always prompt for a password.
Screenshot 2019-05-07 10 10 55 55
At least I think the compression algorithm that can be decompressed with general-purpose compression software is safe, because Keka doesn't necessarily have other platforms (such as Windows, Linux), or Keka can't continue to maintain it for some reason (although this is not what we want to see) This is a risk. In addition, I tested another folder with Keka compression (decompression password: test). Keka and the system's own decompression software can be decompressed, which is safe for users. For other platforms is also available, I hope that the compression problem of the GPUImage framework needs to be optimized, we expect the problem to be solved~
Thank you~
The following is a compressed file (password: test)

@aonez

This comment has been minimized.

Copy link
Owner

commented May 7, 2019

但是用系统自带的解压工具会一直提示要求输入密码

You're right. Didn't catch that one. Did some tests and seems like a macOS bundled extractor bug. Even packages created with WinZIP will get to this loop and all the third apps I've tried (Info-Zip, WinZIP, BetterZip and The Unarchiver) extracted the file properly. Note that Keka and all the other tested use ZIP 2.0 encryption scheme, so there's nothing more compatible than that.

The problem here is that the macOS bundled extractor fails to extract an empty file of 0 bytes that is encrypted, it must think the password is incorrect. In the case of GPUImage2 source there're four Package.swift files of 0 byte size.Just adding a break to them fixes this issue. Here a test (password: test): GPUImage2-master.zip

I've created a simple test file (password: test), containing only two files, one of them (void.txt) being 0 bytes and reproducing this issue: test.zip
I've reported this one at https://bugreport.apple.com (openradar), hopefully they'll fix that one in the future.

@aonez aonez added Apple SDK bug and removed works for me labels May 7, 2019

@aonez aonez modified the milestones: 1.1.15, Future May 7, 2019

@chengkaizone

This comment has been minimized.

Copy link
Author

commented May 7, 2019

我明白了,谢谢你们为我用心的解答这个问题。

祝你们工作愉快~

@alvarnell

This comment has been minimized.

Copy link

commented May 7, 2019

Translation from Chinese:

I understand, thank you for your answer to this question.

I wish you a happy work~

@gingerbeardman

This comment has been minimized.

Copy link
Contributor

commented May 7, 2019

@alvarnell what do you use to translate? I use the Polyglot Safari Extension which will translate any selected text (one of the reasons I'm delaying the move to Mojave)

Screen shot 2019-05-07 at 12 06 49

@alvarnell

This comment has been minimized.

Copy link

commented May 7, 2019

Google Translate https://translate.google.com.

There are also mobile apps for iOS and Android devices.

@gingerbeardman

This comment has been minimized.

Copy link
Contributor

commented May 7, 2019

Cool, that's what I set Polyglot to use behind the scenes. So quick and effortless having translation from anything to English as easy as selecting text!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.