【问题标题】:How secure storage apps woks安全存储应用程序如何工作
【发布时间】:2021-08-01 08:51:24
【问题描述】:

我想像这样使用 Flutter 制作一个移动应用程序

https://play.google.com/store/apps/details?id=com.enchantedcloud.photovault

但我不知道如何确保数据真正安全

我使用了 aes_crpyt 包 (https://pub.dev/packages/aes_crypt),它允许我加密和解密文件 但是如何在不解密为普通文件的情况下检索要在应用程序中显示的数据,这些文件可以使用任何可以访问根文件的资源管理器打开

【问题讨论】:

    标签: flutter dart encryption aes file-security


    【解决方案1】:

    您可以查看此包:flutter_secure_storage。来自文档:

    • 钥匙串用于 iOS
    • AES 加密用于 Android。 AES 密钥使用 RSA 加密,RSA 密钥存储在 KeyStore 中

    这样,您的数据可以通过加密以更安全的方式以SharedPreferences 的方式保存。

    示例语法:

    import 'package:flutter_secure_storage/flutter_secure_storage.dart';
    
    // Create storage
    final storage = new FlutterSecureStorage();
    
    // Read value 
    String value = await storage.read(key: key);
    
    // Read all values
    Map<String, String> allValues = await storage.readAll();
    
    // Delete value 
    await storage.delete(key: key);
    
    // Delete all 
    await storage.deleteAll();
    
    // Write value 
    await storage.write(key: key, value: value);
    

    因为任何数据库的目的都是只存储纯粹的信息组织数据。它不适合存储媒体、文档或图像等大文件。有两种选择:

    1. 将加密文件上传到 Firebase,然后将加密路径保存到 DB
    2. 将加密文件保存到本地存储,然后存储加密路径

    我推荐第一种方法,因为您可以避免将加密文件保存在本地并有可能将其暴露给其他用户。

    【讨论】:

    • 它只加密字符串。我想加密图像和视频等文件
    • 好的,我已经加密了文件并将其保存在本地存储中,但是当用户打开应用程序时,我必须解密才能显示。可以使用根资源管理器访问它。我怎样才能防止这种情况发生?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多