Czy istnieje dobry przykład szyfrowania i odszyfrowywania obrazu i innych plików za pomocą AES na Androida?
java
android
encryption
aes
h4rd4r7c0r3
źródło
źródło
Odpowiedzi:
Ostrzeżenie: ta odpowiedź zawiera kod, którego nie powinieneś używać, ponieważ jest niebezpieczny (używanie SHA1PRNG do wyprowadzania klucza i używanie AES w trybie EBC)
Zamiast tego (od 2016 r.) Użyj PBKDF2WithHmacSHA1 do wyprowadzania klucza i AES w trybie CBC lub GCM (GCM zapewnia zarówno prywatność, jak i integralność)
Możesz użyć takich funkcji:
I przywołaj je w ten sposób:
To powinno działać, używam teraz podobnego kodu w projekcie.
źródło
Jak wspomniano w Nacho.L PBKDF2WithHmacSHA1 stosuje się wyprowadzenie, ponieważ jest bardziej zabezpieczone.
źródło
źródło
Stare pytanie, ale aktualizuję odpowiedzi obsługujące Androida przed i publikuję w wersji 4.2 oraz biorąc pod uwagę wszystkie ostatnie zmiany zgodnie z blogiem programistów Androida
Dodatkowo zostawiam działający przykład w moim repozytorium github .
źródło
android.util.Base64.encode(bytes, Base64.DEFAULT)
iandroid.util.Base64.decode(decryptedData, Base64.DEFAULT)
?Jeśli szyfrujesz plik tekstowy, przydatny może być następujący test / przykład. Wykonuje następujące czynności:
i wreszcie go buforuje
źródło
SecureRandom
do wyprowadzania kluczy. Jeśli chcesz wiedzieć, jak utworzyć instancję szyfru, sprawdź odpowiedź ericksona tutaj . Nie używaj statycznego IV (dla tego samego klucza) i używaj PBKDF2 do konwersji hasła -> klucza. Należy pamiętać, że nieuwierzytelniony szyfr zapewnia poufność tylko i tylko wtedy, gdy nie jest używany w protokole transportowym. Jeśli chcesz pomóc, możesz też spalić inne odpowiedzi (i zagłosować tam na moje komentarze) :)AES / CBC / PKCS7 szyfrowanie / deszyfrowanie, wystarczy skopiować i wkleić poniższy kod i zastąpić
SecretKey
iIV
własne.źródło
Szyfruj / odszyfruj AES w systemie Android
Szyfruj / odszyfruj AES w C #
źródło
Prosty interfejs API do szyfrowania AES na Androida. To jest Androidowy odpowiednik biblioteki AESCrypt Ruby i Obj-C (z tymi samymi ustawieniami domyślnymi):
https://github.com/scottyab/AESCrypt-Android
źródło
Oto prosty fragment kodu działający na potrzeby szyfrowania i deszyfrowania AES.
Mam nadzieję, że to pomogło ...
źródło
Aby dodać dmuchany zamek do projektu na Androida: https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk16/1.45
Dodaj ten wiersz do swojej głównej aktywności:
źródło
Spróbuj z poniższym kodem, który działa dla mnie.
źródło