Czy istnieje biblioteka, która może skompresować plik za pomocą hasła przy użyciu szyfrowania AES?Jak zip plik z hasłem (AES) dla iOS i Androida?
Znalazłem to na iOS: https://github.com/gianlucabertani/Objective-Zip
Czy istnieje biblioteka, która może skompresować plik za pomocą hasła przy użyciu szyfrowania AES?Jak zip plik z hasłem (AES) dla iOS i Androida?
Znalazłem to na iOS: https://github.com/gianlucabertani/Objective-Zip
przypadku Androida jest ładny blogu do rozpakowywania plików tutaj: http://blog.alutam.com/2009/10/31/reading-password-protected-zip-files-in-java/ ten jest realizowany przy użyciu standardów 7-Zip (faktycznie starsza forma PKWARE zip i nie AES) więc możesz rozpakować pliki utworzone z innych platform, a także: Jednak wolę używać tego: zip4j, ponieważ ma już biblioteki Java i można je po prostu zintegrować z projektem Android, a ponieważ integrują go, biblioteki JAVA są dość łatwe , dostajesz szybką naprawę. Ponadto, ponieważ obsługuje to AES, jest on bardziej odpowiedni dla twojego pytania: Edytuj: Mój przyjaciel używa Minizip for iOS do zaimplementowania skompresowania/rozpakowania dla swojego projektu iOS. Możesz spróbować, aby: Zip4j i Minizip nie współpracowały ze sobą, gdy użyliśmy haseł (zip archiwum w Andropidzie i rozpakuj w iOS i na odwrót) (próbowaliśmy po przeczytaniu twojego post, więc spędziliśmy mało czasu do teraz). Czy pisać tutaj jeśli spróbujesz je i uczynić postępy w tym kierunku
Thx za odpowiedź. Czy masz jakieś zalecenia dotyczące iOS? – user1872384
@ user1872384 Zmieniono moją odpowiedź, sprawdź –
@ user1872384 To, co napisałeś w swoim pytaniu: Object-ve-zip dla iOS, również jest dobre. W rzeczywistości jest to opakowanie Minizip dla iOS –
UPDATE:
aktualizowane ustawienie parametrów i hasło w zipfile metody tworzenia.
można wykorzystywać bibliotekę Zip4j http://www.lingala.net/zip4j/download.php
jeśli chcesz AES też można zrobić z następującym kodem
// Initiate ZipFile object with the path/name of the zip file.
ZipFile zipFile = new ZipFile("c:\\ZipTest\\AddFilesWithAESZipEncryption.zip");
// Build the list of files to be added in the array list
// Objects of type File have to be added to the ArrayList
ArrayList filesToAdd = new ArrayList();
filesToAdd.add(new File("c:\\ZipTest\\sample.txt"));
filesToAdd.add(new File("c:\\ZipTest\\myvideo.avi"));
filesToAdd.add(new File("c:\\ZipTest\\mysong.mp3"));
// Initiate Zip Parameters which define various properties
ZipParameters parameters = new ZipParameters();
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE); // set compression method to deflate compression
//DEFLATE_LEVEL_FASTEST - Lowest compression level but higher speed of compression
//DEFLATE_LEVEL_FAST - Low compression level but higher speed of compression
//DEFLATE_LEVEL_NORMAL - Optimal balance between compression level/speed
//DEFLATE_LEVEL_MAXIMUM - High compression level with a compromise of speed
//DEFLATE_LEVEL_ULTRA - Highest compression level but low speed
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
//Set the encryption flag to true
parameters.setEncryptFiles(true);
//Set the encryption method to AES Zip Encryption
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
//AES_STRENGTH_128 - For both encryption and decryption
//AES_STRENGTH_192 - For decryption only
//AES_STRENGTH_256 - For both encryption and decryption
//Key strength 192 cannot be used for encryption. But if a zip file already has a
//file encrypted with key strength of 192, then Zip4j can decrypt this file
parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
//set password
parameters.setPassword("your password here");
// Now add files to the zip file
// Note: To add a single file, the method addFile can be used
// Note: If the zip file already exists and if this zip file is a split file
// then this method throws an exception as Zip Format Specification does not
// allow updating split zip files
zipFile.addFiles(filesToAdd, parameters);
setEncryptionMethod() określa rodzaje szyfrowania chcesz. i setAesKeyStrength() określają siłę algorytmu szyfrowania.
jak zabezpieczony hasłem istniejący plik zip przy użyciu biblioteki Zip4j w systemie Android? –
Możesz ustawić hasło bezpośrednio na obiekcie ZipFile za pomocą metody "setPassword()" –
'try { ZipFile zipFile = new ZipFile (output_path); zipFile.setPassword ("pass"); } catch (ZipException e) { e.printStackTrace(); } "to nie działa –
Można użyć OpenSSL dla android https://github.com/eighthave/openssl-android wymagany jest jakiś wiedząc w NDK do kompilacji biblioteki, aby go (.so), jest bardzo perfermant użyć natywnej biblioteki otwartej jak SSL do wygrania perfermancy
spróbuje użyć libzip renderowanie biblioteka. Jest to biblioteka C i jest tam Android NDK package, więc możesz jej użyć ponownie na iOS i Androidzie
Użyłem ZipArchive do utworzenia plików zip z hasłem i rozpakowania ich. Jedyną wadą jest to, że nie można go rozpakować przez żaden inny program mac. odnośnik: https://github.com/ZipArchive/ZipArchive – Sneha
Hej dzięki za odpowiedź. Czy jest w stanie chronić plik zip hasłem? – user1872384
tak. Żaden inny program nie może rozpakować go poza ZipArchive :). Trudne czasami do debugowania, ponieważ trzeba zrobić program na Mac OSX, aby go rozpakować :). – Sneha