Как зашифровать базу данных SQLite во Flutter?

Я создаю базу данных во Flutter с помощью следующего кода, можно ли как-то зашифровать базу данных?

Есть ли какая-нибудь библиотека для Flutter?

initDb() async {
    io.Directory documentsDirectory = await getApplicationDocumentsDirectory();
    String path = join(documentsDirectory.path, "test.db");
    var theDb = await openDatabase(path, version: 1, onCreate: _onCreate);
    return theDb;
  }

person Raja Jawahar    schedule 08.05.2018    source источник


Ответы (3)


Pointy Castle кажется предпочтительной библиотекой шифрования на данный момент.

person Randal Schwartz    schedule 08.05.2018
comment
У нас есть что-то точно похожее на SQLCipher?? - person Raja Jawahar; 10.05.2018
comment
@RajaJawahar Да. См. pub.dartlang.org/packages/flutter_sqlcipher. - person Arto Bendiken; 04.12.2018
comment
К вашему сведению. По состоянию на 16 марта 2020 г. Pointy Castle больше не обслуживается. - person eimmer; 16.03.2020
comment
@eimmer PointyCastle перемещен сюда: github.com/bcgit/pc-dart - person MatPag; 29.04.2020
comment
Каковы преимущества использования SQLChieper, а не Pointy Castle? - person AlexPad; 06.11.2020

Текущий sqflite использует любую версию sqlite, которую предоставляет платформа. Здесь есть обсуждение этого вопроса, за которым вы можете следить здесь: https://github.com/tekartik/sqflite/issues/32

Единственное известное мне решение — это https://github.com/QwilApp/encrypted_sqlite, которое может использоваться в качестве замены sqflite, который, как вы сказали, использует SQLCipher на собственной стороне

person alextk    schedule 29.11.2018
comment
Привет, @alextk Возможно, вы захотите обновить этот ответ своей библиотекой pub.dev/packages/sembast Спасибо. ! :) - person DazChong; 12.07.2019
comment
@DazChong, вопрос был о шифровании базы данных sqlite, sembast - альтернатива, но это не sql! - person alextk; 12.07.2019

Я тоже ищу такую ​​библиотеку сегодня.

И, наконец, я нашел flutter_sqlcipher в pub.dev, который действительно решил мою проблему.

Вот его описание.

Это плагин Flutter, который объединяет и обертывает SQLCipher для Android, расширение с открытым исходным кодом для SQLite, которое обеспечивает прозрачное 256-битное шифрование файлов базы данных AES.

Надеюсь, это поможет вам.

person NeroSong    schedule 12.08.2019
comment
Предупреждение. В настоящее время только для Android. (Планируется поддержка iOS.) Источник - person lo2ndii; 24.08.2020