Użyłem FMDB do utworzenia bazy danych SQLite w Swift. Ale teraz chcę je zaszyfrować. Czy ktoś może mi pomóc w wersji Swift szyfrowania i odszyfrowywania bazy danych SQLite za pomocą "FMDB/SQLCipher"? Nie mogłem znaleźć dobrego samouczka, aby to zrozumieć.Jak szyfrować i odszyfrowywać za pomocą "FMDB/SQLCipher" w Swift?
9
A
Odpowiedz
0
Zgodnie z tym detailed tutorial należy użyć Cocoapods, aby załadować odpowiednie biblioteki i konfigurację. Tutorial opisuje rozwiązanie Objective-C, ale można znaleźć w komentarzach tłumaczenie w Swift:
var db: COpaquePointer = nil;
let databasePath = FileUtils.getPath(“app.db”)
var ecDB = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)[0].stringByAppendingPathComponent(“encrypted.sqlite”)
let result = String.fromCString(“ATTACH DATABASE \(ecDB) AS encrypted KEY TaP”)
if (sqlite3_open(databasePath, &db) == SQLITE_OK) {
// Attach empty encrypted database to unencrypted database
sqlite3_exec(db, result!, nil, nil, nil);
// export database
sqlite3_exec(db, “SELECT sqlcipher_export(‘encrypted’);”, nil, nil, nil);
// Detach encrypted database
sqlite3_exec(db, “DETACH DATABASE encrypted;”, nil, nil, nil);
sqlite3_close(db);
}
else {
sqlite3_close(db);
sqlite3_errmsg(db);
}
Przeczytaj detailed tutorial dla pełnych wyjaśnień.
+0
Próbowałem tego, ale awarie, gdy baza danych zostanie utworzona. Część kodu działa dobrze, jeśli zainstaluję FMDB bez SCLCipher. Używam Xcode 8 i Swift 3. – Salmo
Powiązane problemy
- 1. GnuPG: Jak szyfrować/odszyfrowywać pliki za pomocą określonego klucza?
- 2. Jak szyfrować i odszyfrowywać zwykły tekst za pomocą kluczy RSA w programie Go?
- 3. Potrzebujesz komponentu/biblioteki Delphi, która pozwala mi szyfrować/odszyfrowywać tekst za pomocą RSA
- 4. Jak szyfrować hasła za pomocą PostgreSQL?
- 5. Jak zaszyfrować i odszyfrować plik za pomocą Qt/C++?
- 6. Jak szyfrować kolumny w postgresql?
- 7. Jak zbudować projekt Xcode 9 za pomocą Swift 4.0 za pomocą kapsuł w Swift 3?
- 8. ruby - jak szyfrować tekst
- 9. Jak szyfrować lub deszyfrować za pomocą Rijndael i blok o rozmiarze 256 bitów?
- 10. Jak przekazywać dane za pomocą NotificationCentre w swift 3.0 i NSNotificationCenter w swift 2.0?
- 11. Android Nie można szyfrować bazy danych za pomocą narzędzia sqlcipher za pomocą greendao
- 12. Jak sprawdzić model iPhone'a za pomocą Swift
- 13. Przekaż zmienne za pomocą PresentViewController w Swift
- 14. Wywoływanie i kontrolowanie wibracji za pomocą Swift i iOS8
- 15. Uwierzytelnianie za pomocą WKWebView w Swift
- 16. Swift - za pomocą enum w instrukcji switch
- 17. Jak szyfrować pliki dzienników log4net
- 18. Jak obsługiwać formanty w MPMoviePlayerController za pomocą SWIFT?
- 19. Jak szyfrować ciągi zapytań w asp.net?
- 20. Jak dodać cień w widoku uicollectionview za pomocą Swift?
- 21. Jak wybrać cały tekst w UITextField za pomocą Swift
- 22. Jak przeprowadzić automatyczną segregację w Xcode 6 za pomocą Swift?
- 23. Jak używać "enumerateChildNodesWithName" za pomocą Swift w SpriteKit?
- 24. Jak ustawić endianness integer za pomocą htonl w Swift?
- 25. Jak uzyskać kod kraju za pomocą NSLocale w Swift 3
- 26. Jak ustawić obraz tła w Xcode za pomocą Swift?
- 27. Jak odwrócić UIImage w poziomie za pomocą Swift?
- 28. Tworzenie listy rozwijanej za pomocą Swift?
- 29. Kopiowanie obrazu za pomocą UIPasteBoard (Swift)
- 30. Jak szyfrować ciąg/strumień za pomocą bouncycastle pgp bez rozpoczynania z plikiem
Musisz otworzyć bazę danych z tekstem otwartym i skopiować ją do zaszyfrowanej, a następnie usunąć tekst w postaci zwykłego tekstu, jak opisano w dokumentach SQLCipher: https://discuss.zetetic.net/t/how-to-encrypt -a-zwykły tekst-sqlite-baza danych-do-użycia-sqlcipher-i-unikanie-pliku-jest-zaszyfrowane-lub-nie-bazy danych-błędy/868 Nie znam fmdb, więc nie jestem w stanie zapewnić wskazówki na poziomie interfejsu API dla tej operacji. – Palpatim
Czy możesz powiedzieć, w jaki sposób dodałeś framework FMDB? Myślę, że mógłbym pomóc. –