Flutter本地安全存储插件local_secure_storage的使用

Flutter本地安全存储插件local_secure_storage的使用

描述

local_secure_storage 是一个用于在 Flutter 应用中安全存储敏感数据的插件。它可以将数据加密后存储在设备上,确保数据的安全性。


功能

该插件支持以下功能:

  • 安全存储字符串数据。
  • 数据加密后存储。
  • 支持跨平台(Android 和 iOS)。

开始使用

前提条件

  1. 确保已安装 Flutter 和 Dart。
  2. pubspec.yaml 文件中添加依赖:
    dependencies:
      flutter_local_secure_storage: ^0.7.0
    
  3. 运行 flutter pub get 安装依赖。

使用方法

示例代码

以下是一个完整的示例,展示如何使用 local_secure_storage 插件来存储和读取敏感数据。

import 'package:flutter/material.dart';
import 'package:flutter_local_secure_storage/flutter_local_secure_storage.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: SecureStorageExample(),
    );
  }
}

class SecureStorageExample extends StatefulWidget {
  [@override](/user/override)
  _SecureStorageExampleState createState() => _SecureStorageExampleState();
}

class _SecureStorageExampleState extends State<SecureStorageExample> {
  final storage = FlutterLocalSecureStorage(); // 创建本地安全存储实例
  String _storedData = "未初始化"; // 用于存储从存储中读取的数据

  Future<void> _writeData() async {
    await storage.write(key: 'secureKey', value: 'mySecretValue'); // 写入数据
    setState(() {
      _storedData = '数据已写入';
    });
  }

  Future<void> _readData() async {
    final data = await storage.read(key: 'secureKey'); // 读取数据
    setState(() {
      _storedData = data ?? '未找到数据'; // 如果数据不存在,显示“未找到数据”
    });
  }

  Future<void> _deleteData() async {
    await storage.delete(key: 'secureKey'); // 删除数据
    setState(() {
      _storedData = '数据已删除';
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('local_secure_storage 示例'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text('当前存储的数据:$_storedData'), // 显示当前存储的数据
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: _writeData,
              child: Text('写入数据'),
            ),
            SizedBox(height: 10),
            ElevatedButton(
              onPressed: _readData,
              child: Text('读取数据'),
            ),
            SizedBox(height: 10),
            ElevatedButton(
              onPressed: _deleteData,
              child: Text('删除数据'),
            ),
          ],
        ),
      ),
    );
  }
}

更多关于Flutter本地安全存储插件local_secure_storage的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter本地安全存储插件local_secure_storage的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中,local_secure_storage 是一个用于安全存储敏感数据的插件。它使用平台提供的安全存储机制(如 iOS 的 Keychain 和 Android 的 Keystore)来存储数据,确保数据的安全性。

安装插件

首先,你需要在 pubspec.yaml 文件中添加 local_secure_storage 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  local_secure_storage: ^1.0.0

然后运行 flutter pub get 来安装插件。

使用插件

1. 导入插件

在你的 Dart 文件中导入 local_secure_storage 插件:

import 'package:local_secure_storage/local_secure_storage.dart';

2. 初始化插件

在使用插件之前,通常需要初始化它。你可以通过调用 LocalSecureStorage.init() 来初始化插件:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await LocalSecureStorage.init();
  runApp(MyApp());
}

3. 存储数据

你可以使用 LocalSecureStoragewrite 方法来存储数据:

await LocalSecureStorage.write(key: 'my_key', value: 'my_value');

4. 读取数据

使用 read 方法来读取存储的数据:

String? value = await LocalSecureStorage.read(key: 'my_key');
print(value); // 输出: my_value

5. 删除数据

使用 delete 方法来删除存储的数据:

await LocalSecureStorage.delete(key: 'my_key');

6. 检查是否存在

你可以使用 containsKey 方法来检查某个键是否存在:

bool exists = await LocalSecureStorage.containsKey(key: 'my_key');
print(exists); // 输出: true 或 false

7. 清除所有数据

使用 clear 方法来清除所有存储的数据:

await LocalSecureStorage.clear();

示例代码

以下是一个完整的示例,展示了如何使用 local_secure_storage 插件来存储、读取和删除数据:

import 'package:flutter/material.dart';
import 'package:local_secure_storage/local_secure_storage.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await LocalSecureStorage.init();
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Local Secure Storage Example')),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              ElevatedButton(
                onPressed: () async {
                  await LocalSecureStorage.write(key: 'my_key', value: 'my_value');
                  print('Data stored');
                },
                child: Text('Store Data'),
              ),
              ElevatedButton(
                onPressed: () async {
                  String? value = await LocalSecureStorage.read(key: 'my_key');
                  print('Data read: $value');
                },
                child: Text('Read Data'),
              ),
              ElevatedButton(
                onPressed: () async {
                  await LocalSecureStorage.delete(key: 'my_key');
                  print('Data deleted');
                },
                child: Text('Delete Data'),
              ),
              ElevatedButton(
                onPressed: () async {
                  await LocalSecureStorage.clear();
                  print('All data cleared');
                },
                child: Text('Clear All Data'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
回到顶部