Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何创建受密码保护的普通ZIP存档?_Android_Encryption_Zip - Fatal编程技术网

Android 如何创建受密码保护的普通ZIP存档?

Android 如何创建受密码保护的普通ZIP存档?,android,encryption,zip,Android,Encryption,Zip,我的应用程序将多个文件压缩,将zip文件保存到SD卡,并通过电子邮件将zip文件发送到一个地址 压缩是使用以下代码完成的: 现在的问题是,如何在zip文件中输入密码,以便在计算机(Windows、Mac或Ubuntu)上打开该文件的授权人员能够使用提供的密码提取文件 我读了这篇帖子:,但我觉得读zip是用另一部手机完成的。。。还是我错了? 如果有人知道,请告诉我!谢谢 由于Android有一个JVM,您可以尝试使用您看到的所有java库(一些运行,一些不运行,一些库的一些更改也可以) 这样,我将

我的应用程序将多个文件压缩,将zip文件保存到SD卡,并通过电子邮件将zip文件发送到一个地址

压缩是使用以下代码完成的:


现在的问题是,如何在zip文件中输入密码,以便在计算机(Windows、Mac或Ubuntu)上打开该文件的授权人员能够使用提供的密码提取文件

我读了这篇帖子:,但我觉得读zip是用另一部手机完成的。。。还是我错了?
如果有人知道,请告诉我!谢谢

由于Android有一个JVM,您可以尝试使用您看到的所有java库(一些运行,一些不运行,一些库的一些更改也可以)

这样,我将复制问题的过去答案(用Java编写一个密码保护的Zip文件):

经过多次搜索,我找到了三种方法:

一组免费提供的源代码,适用于单个文件压缩。 但是,没有许可证。用法是 AesZipOutputStream.zipAndEcrypt(…)。 ()

更新:此代码现在已获得Apache许可,并在 . 它对我有用(一个文件在 zip),填补了Java的一个漏洞,很好地打开了源代码库

商业产品(撰写本文时为500美元)。我无法证实 这是可行的,因为他们的试用许可方法很复杂。它也是一个 移植的.NET应用程序:

商业产品(撰写本文时为290美元)。仅适用于 Wnidows使用dll时:

您还必须知道,也许将它们应用到Android并不容易,但也许您很幸运,其中一些功能会立即为您运行


祝你好运

我搜索了很多,终于找到了一个可以轻松使用密码压缩文件的:

Zip:

ZipArchive zipArchive = new ZipArchive();
zipArchive.zip(targetPath,destinationPath,password);
ZipArchive zipArchive = new ZipArchive();
zipArchive.unzip(targetPath,destinationPath,password);
RarArchive rarArchive = new RarArchive();
rarArchive.extractArchive(file archive, file destination);
解压缩:

ZipArchive zipArchive = new ZipArchive();
zipArchive.zip(targetPath,destinationPath,password);
ZipArchive zipArchive = new ZipArchive();
zipArchive.unzip(targetPath,destinationPath,password);
RarArchive rarArchive = new RarArchive();
rarArchive.extractArchive(file archive, file destination);
Rar:

ZipArchive zipArchive = new ZipArchive();
zipArchive.zip(targetPath,destinationPath,password);
ZipArchive zipArchive = new ZipArchive();
zipArchive.unzip(targetPath,destinationPath,password);
RarArchive rarArchive = new RarArchive();
rarArchive.extractArchive(file archive, file destination);
这个库的文档已经足够好了,我只是从那里添加了一些示例。 它是完全免费的,是专门为android编写的。

“我如何在zip文件上输入密码,以便在计算机(Windows、Mac或Ubuntu)上打开它的人能够提取文件?”你的意思是不会。你设置了密码,使他们无法打开它?如果你想让他们“在电脑上打开并解压缩文件”,那么我的问题是,当你试图按原样(在电脑上)双击zip文件时会发生什么情况@Lily Correct。链接的帖子并没有创建一个“密码保护的ZIP”(关键短语),而是在一个非密码保护的ZIP中存储一个加密流。我不知道这是否适用于Android本身(我甚至没有“智能手机”;-),但Java有这样的库。有关链接和相关信息,请参阅和。@owen gerig的问题是“如何创建一个普通的密码保护的ZIP存档?”:-)[我更新了标题以反映。]@pst谢谢这就是我的意思。。。我希望获得授权的个人使用我给他们的密码打开文件,但没有其他人:)你能举个例子在kotlin中这样做吗404@petyr谢谢你指点。我更新了我的答案。显然,所有者删除了lib。但你仍然可以从mvn回购中使用它。非常感谢@MiladFaridnia,我将使用新链接。