1
+ import 'dart:convert' ;
1
2
import 'dart:developer' ;
2
3
import 'dart:io' ;
3
4
4
5
import 'package:flutter/foundation.dart' ;
6
+ import 'package:flutter_secure_storage/flutter_secure_storage.dart' ;
5
7
import 'package:hive_flutter/adapters.dart' ;
6
8
import 'package:path/path.dart' ;
7
9
import 'package:path_provider/path_provider.dart' ;
@@ -28,15 +30,39 @@ class HiveHelper {
28
30
}
29
31
30
32
await Hive .initFlutter ();
33
+ const secureStorage = FlutterSecureStorage ();
34
+ final encryprionKey = await secureStorage.read (key: 'key' );
35
+ if (encryprionKey == null ) {
36
+ final key = Hive .generateSecureKey ();
37
+ await secureStorage.write (
38
+ key: 'key' ,
39
+ value: base64UrlEncode (key),
40
+ );
41
+ }
42
+
43
+ final key = await secureStorage.read (key: 'key' );
44
+ final encryptionKey = base64Url.decode (key! );
31
45
32
46
Hive .registerAdapter (SubTaskAdapter ());
33
47
Hive .registerAdapter (TaskAdapter ());
34
48
Hive .registerAdapter (SubCategoryAdapter ());
35
- await Hive .openBox ("subtask" );
36
- await Hive .openBox ("task" );
37
- await Hive .openBox ("subCategory" );
49
+ await Hive .openBox (
50
+ "subtask" ,
51
+ encryptionCipher: HiveAesCipher (encryptionKey),
52
+ );
53
+ await Hive .openBox (
54
+ "task" ,
55
+ encryptionCipher: HiveAesCipher (encryptionKey),
56
+ );
57
+ await Hive .openBox (
58
+ "subCategory" ,
59
+ encryptionCipher: HiveAesCipher (encryptionKey),
60
+ );
38
61
Hive .registerAdapter (CategoryTaskAdapter ());
39
- await Hive .openBox ("category" );
62
+ await Hive .openBox (
63
+ "category" ,
64
+ encryptionCipher: HiveAesCipher (encryptionKey),
65
+ );
40
66
}
41
67
42
68
static void close (String name) async {
0 commit comments