2015-04-20 15 views
5

Jestem noworodkiem z punktu widzenia bezpieczeństwa Androida. Próbuję to zaszyfrować/odszyfrować bazę danych SQL.Android szyfrowanie/odszyfrowywanie bazy danych sqlite w 100% bezpieczne

I już przez wielokrotnego tutorialu ale nic nie wydaje się work.I przeszły SQL Szyfrów linku ale tutaj mam kod i jestem coraz problem podane poniżej:

Type Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lnet/sqlcipher/AbstractCursor$SelfContentObserver; 

Również nie muszę hasło chronione plik. Używam domyślnej klasy Cipher, którą udostępnia biblioteka Android:

Cipher c = Cipher.getInstance("RSA"); 
      c.init(Cipher.ENCRYPT_MODE, privateKey); 

Ale nie uważam tego za bezpieczną. Przypuszczam, że może zostać odszyfrowany przez hakerów. Potrzebuję odpowiedniego 100% szyfrowania i deszyfrowania bezpieczeństwa Sqlite Database.

+0

"Ale ja [...] nie uważam za bezpieczny" - dlaczego uważasz, że nie jest bezpieczny? Jeśli jest używany poprawnie, powinien być całkiem bezpieczny - jeśli 'privateKey' jest * nie * przechowywany w dowolnym miejscu na urządzeniu. – JimmyB

+0

Konieczne jest przechowywanie danych lokalnie – Codelord

+0

"Przeszedłem przez łącze Sql Cipher link, ale tutaj koduję, dostaję poniżej problem" - nie możemy ci pomóc bez dalszych przejść, takich jak pliki 'build.gradle' (jeśli używasz Android Studio). "Również nie potrzebuję pliku chronionego hasłem" - trudne kodowanie hasła będzie niebezpieczne, podobnie jak generowanie hasła i przechowywanie go w pamięci wewnętrznej. Teoretycznie jest to możliwe, używając "KeyStore" wspieranego sprzętowo na całkiem nowych urządzeniach z systemem Android, aby uniknąć hasła * i * uniknąć hasła zakodowanego na stałe, chociaż jeszcze tego nie próbowałem, a dzisiaj jest obsługiwanych przez stosunkowo niewiele urządzeń. – CommonsWare

Odpowiedz

5

SQL Lite to lekki system baz danych. Powiedział, że ma również kilka hacków możliwych do systemu, aby uczynić go zaszyfrowanym LUB chronionym hasłem. Oto kilka z nich, które znam: -

  1. SEE: SQLite Encryption Extension (SEE) to dodatek do wersji domenie publicznej SQLite, który umożliwia aplikację do odczytu i zapisu zaszyfrowanych plików baz danych. Obsługiwane są cztery różne algorytmy szyfrowania:

    RC4

    AES 128 w trybie OFB

    AES 128 w trybie CCM

    AES 256 w trybie OFB

  2. WxSQLite: ą wxWidgets styl C++ wrapper, który implementuje również szyfrowanie SQLite.

3. SQLCipher - SQLCipher ma niewielkie gabaryty i wysoką wydajność, dlatego idealnie nadaje się do ochrony osadzonych baz danych aplikacji i doskonale nadaje się do rozwoju mobilnego.

Osobiście polecam zgodnie z Twoimi potrzebami SQLCipher jest najlepszym rozwiązaniem. Wypróbowałem. Jest wysoce zalecany. System Open-Source.

+0

Tak, czuję, że SQLCipher będzie dobry.Mam też rozwiązać wiele plików dex issue.now sprawdzi, gdzie pójdę teraz :). Sry Nie mogę głosować bcz Mam mniej reputacji :( –

Powiązane problemy