Recommandations sur une bibliothèque libre d'être utilisé pour la compression de fichiers
J'ai besoin de zip et de protéger par mot de passe d'un fichier. Est-il bon (gratuit) de la bibliothèque pour cela?
Ce doit être ouvert par un tiers, de sorte que la protection par mot de passe doit travailler avec des outils standard.
- Comment de telles utile question est fermé?
- Parce que les Méta décidé que les questions utiles qui pourraient un peu se transformer en une affaire d'opinion ne sont pas conçues pour s'adapter à StackOverflow. C'est triste, mais vrai.
- Zip4j prend en charge le cryptage de fichier de la liste: stackoverflow.com/questions/15085249/...
Vous devez vous connecter pour publier un commentaire.
Après beaucoup de recherches, j'ai trouvé trois approches:
Un libre accès à l'ensemble du code source, adapté pour un seul fichier zip. Cependant, il n'existe pas de licence. L'utilisation est AesZipOutputStream.zipAndEcrypt(...).
http://merkert.de/de/info/zipaes/src.zip
(https://forums.oracle.com/forums/thread.jspa?threadID=1526137)
Mise à JOUR: Ce code est maintenant sous licence Apache et publié au http://code.google.com/p/winzipaes/ . Il a travaillé pour moi (un fichier dans le zip), et remplit un trou dans Java open source bibliothèques bien.
Un produit commercial (de 500$au moment de la rédaction). Je ne peux pas vérifier si cela fonctionne, comme leur licence d'évaluation de l'approche est complexe. C'est également un porté .NET app:
http://www.nsoftware.com/ipworks/zip/default.aspx
Un produit commercial (290 dollars au moment de la rédaction). Convient uniquement pour les Wnidows, car il utilise une dll:
http://www.example-code.com/java/zip.asp
Vous pouvez essayer Zip4j, un pur bibliothèque java pour gérer le fichier zip. Il prend en charge le chiffrement/déchiffrement de PKWare le cryptage AES et méthodes.
Principales caractéristiques:
Licence:
Ce n'est pas une réponse, mais c'est une précaution de garder à l'esprit lors de l'évaluation des solutions possibles.
Une chose très importante à propos de zip cryptage:
Il existe plusieurs types de zip cryptage. L'ancien type (une partie de l'original zip standard) n'est pas du tout vaut la peine avec (il peut être craqué en moins de 10 minutes avec des applications facilement disponible en ligne).
Si vous faites une sorte de cryptage de fichiers zip, veuillez, s'il vous plaît être sûr que vous utilisez une des plus fortes des normes de chiffrement (je crois que WinZip est de 128 et 256-bit AES standard est le mieux pris en charge). Voici les spécifications techniques - nous avons utilisé ce lors de l'élaboration de notre propre Java zip cryptés (système ne peut pas fournir les sources - désolé - c'est à usage interne uniquement)
La seule chose pire que de ne pas avoir de chiffrement est de penser que vous avez le chiffrement et le mal 🙂
7-Zip a la possibilité d'ajouter un mot de passe dans son mode ligne de commande. Peut-être vous pouvez exec pour obtenir ce résultat (et il a un bon ratio de compression trop).
Inconvénients: processus externe, dur pour faire de portable (même si 7-Zip portable est en lui-même), pas sûr de licence de distribution.
Noter que InfoZip est utilitaire Zip, ultra-portable trop, prend également en charge le mot de passe.
Vous pouvez également essayer TrueZip. Voir les liens suivants pour caractéristiques:
https://christian-schlichtherle.bitbucket.io/truezip/
Le successeur de TrueZip peuvent être trouvés ici:
https://christian-schlichtherle.bitbucket.io/truevfs/
Voici un exemple d'utilisation winzipaes 1.0.1.
Remarque, c'est juste une idée, je n'ai pas testé ce code exactement cette forme.
Vous pouvez leur décompresser "/tmp/foo.zip" à l'aide de Winzip (v9+) ou 7za (c'est à dire 7zip) sur un Mac à l'aide d'un mot de passe "mon mot de passe".
Remarque: il n'est pas clair pour moi pourquoi il est nécessaire de spécifier le mot de passe deux fois dans le code ci-dessus. Je ne sais pas ce qui se passerait si vous avez utilisé un mot de passe différent dans ces deux endroits.
Si vous donnez une meilleure utilisation de scénario puis il y a d'autres alternatives.
Pour 3, alors vous pouvez simplement utiliser java pour chiffrer le flux de contenu du zip comme un fichier normal, probablement préférable de changer l'extension du fichier .ezip ou somesuch trop.
Pour 1 et 2 vous pouvez utiliser la chillkat solution comme mentionné, ou un équivalent.
Cependant, soyez conscient que chillkat n'est pas une pure solution Java, il utilise JNI.
Infos supplémentaires: j'ai googlé un peu plus et en effet, c'est un très commun de question, et il semble que il n'y a pas de solution gratuite (encore?).
Maintenant, l'algorithme standard de Zip cryptage est bien défini: Voir PKWARE de Note D'Application sur le .ZIP format de fichier. Il semble être un chiffrement sur les flux crypté. Si quelqu'un se sent comme à coder ça...
Maintenant, je me demande pourquoi le Soleil n'a pas l'inclure dans sa bibliothèque? Le manque de standard? En matière de brevets et de la question de droit? Trop faible pour être utilisable?
java.util.zip va faire de la compression de fichiers, mais il ne le fera pas les mots de passe. Et non, je ne sais pas du tout libre à ceux qui le seront. Le moins cher Que j'ai vu est de 150 $pour un développeur siège.