flutter如何实现安全存储flutter_secure_storage

在Flutter中如何使用flutter_secure_storage插件实现安全存储?我想存储敏感信息如用户token,但不太清楚具体实现步骤和最佳实践。这个插件在不同平台(iOS/Android)上的加密机制有什么区别?是否需要额外配置才能确保数据真正安全?能否提供一个完整的代码示例,包括读写和删除操作?

2 回复

使用 flutter_secure_storage 库实现安全存储:

  1. 添加依赖:
dependencies:
  flutter_secure_storage: ^8.0.0
  1. 基本用法:
final storage = FlutterSecureStorage();

// 写入
await storage.write(key: 'token', value: 'abc123');

// 读取
String? value = await storage.read(key: 'token');

// 删除
await storage.delete(key: 'token');

该库使用平台原生加密机制(Android KeyStore/iOS Keychain)保护数据安全。

更多关于flutter如何实现安全存储flutter_secure_storage的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中实现安全存储,推荐使用 flutter_secure_storage 包。它通过平台特定的安全机制(如Android的Keystore和iOS的Keychain)加密存储敏感数据,确保数据安全。

实现步骤:

  1. 添加依赖
    pubspec.yaml 中添加:

    dependencies:
      flutter_secure_storage: ^9.0.0
    

    运行 flutter pub get 安装。

  2. 基本用法

    import 'package:flutter_secure_storage/flutter_secure_storage.dart';
    
    final storage = FlutterSecureStorage();
    
    // 写入数据
    await storage.write(key: 'token', value: 'your_secret_token');
    
    // 读取数据
    String? token = await storage.read(key: 'token');
    
    // 删除数据
    await storage.delete(key: 'token');
    
    // 清空所有数据
    await storage.deleteAll();
    
  3. Android 配置
    android/app/src/main/AndroidManifest.xml 中,确保文件存储未备份(避免安全漏洞):

    <application
      ...
      android:allowBackup="false">
    </application>
    
  4. iOS 配置
    对于iOS,无需额外配置,但需确保启用Keychain共享(默认已处理)。

注意事项:

  • 仅存储敏感数据(如令牌、密码),普通数据建议用 shared_preferences
  • 安卓版本低于6(API 23)时,加密可能降级,建议最低支持API 23。
  • 测试时模拟器可能因缺少锁屏密码导致异常,真机测试更可靠。

通过以上步骤,即可安全存储敏感信息。

回到顶部