Flutter保存和加密数据

2023-11-18

你有没有想过它是如何在手机上处理数据的?让我们一起加密任何文件或模型!

我们将要做的:

首先,我们谈论使用Flutter的加密

接下来,我们将创建一个文件管理器来保存数据。

稍后做加密和解密pdf文件

最后,使用您自己的模型保存加密的pdf。

完成此操作后,您可以高枕无忧了。这些步骤足以处理私有数据。如果您想要更强大的加密,您必须要有一个带有后端服务的服务器端解决方案。

加密架构

图略

这是一个很简单的场景,因为在使用加密将此数据保存在电话目录中后,只需在云服务中获取数据。这里重要的一点是不应该使用任何第三方方法读取数据。

编程
我正在为此示例创建此服务。此服务返回带有此模型详细信息的 pdf URL,因此请提前保留缓存数据和 pdf。而手机上的数据缓存另外应该对数据中的操作进行加密。

首先,我为后端操作创建了一个缓存服务。

这一层还做了额外的工作,您需要为每个请求创建网络管理器实例。你应该看看这个核心类。

我准备了一个主视图屏幕来显示服务数据。

现在,我需要使用模型详细信息缓存此 pdf。 也许您只能使用 pdf 文件加密,但对于您的业务来说还不够,因为在视图中显示每个缓存文件后应该像库视图一样。

在这种情况下,我将 pdf 保存在模型 json 中。我可以直接显示所有项目模型。

缓存操作
首先,开始轻松地编写单元测试。我使用可测试的代码创建了一个模拟文件管理器。

在我使用这个模拟文件实例并调用我的自定义场景之后。现在用提供程序包打开文件目录,然后它可以在手机目录中写入任何文件。

这些代码适用于下载任何 pdf 文件并缓存在本地路径上。它将保存在您的 vscode 文件夹中。

我们知道如何缓存pdf文件,然后如果我们想缓存任何动态模型,我们将制作一个JSON字符串来添加缓存。 缓存模型操作与 pdf 过程类似,但代码略有不同。 这种不同使写入字节八位组更改为写入字符串的方法。

test('Cache Model In File', () async {

    final model = ItemModel(id: 1345);

    final directory = await getApplicationDocumentsDirectory();

    await Directory('${directory.path}').create();

    await Directory('${directory.path}/vb2').create();

    final path = '${directory.path}/vb2/${model.title}.jso';

    final file = File(path);

    final fileWithData = await file.writeAsString(model.toString());

    expect(await fileWithData.exists(), true);

  });

它已经可以在任何情况下使用。 只需要字符串源附加Key & IV 参数。 任何类都可以调用此管理器为加密自己的业务。 是时候回到测试文件夹并获取显示加密代码了。当不查看加密代码时,它需要创建一个key和 iv 字符串。

页面设计
加密和缓存
高级详细信息视图和库
源代码

详情参阅 - 亚图跨际

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flutter保存和加密数据 的相关文章

随机推荐

  • TIM的一些配置参数

    1 使能TIM时钟 RCC APB1PeriphClockCmd RCC APB1Periph TIM ENABLE 2 基础设置 TIM TimeBaseStructure TIM Period 计数值 TIM TimeBaseStruc
  • osg fbo(四),将颜色缓冲区图片中的牛通过shader变绿

    osg fbo 三 中 把整个屏幕变绿了 因为是把shader添加到了颜色缓冲区图片上了 如果只想把牛变绿 就需要把shader添加到原始场景根中 即 osg ref ptr
  • Linux笔记:终端复用与管理工具screen和tmux

    文章目录 目的 screen 快速入门 更多介绍 tmux 快速入门 窗口与窗格 更多介绍 总结 目的 通过终端使用Linux时比较纠结的是一个终端通常同一时间只能做一件事 虽然可以将任务放入后台 但是对于有输出或交互的任务放入后台并不是一
  • Linux 等待队列

    1 Linux内核中等待队列简介 Linux 内核等待队列可以用于许多用途 如中断 进程同步 以及定时 等待队列实现了在事件上的条件等待 希望等待特定事件的进程把自己放进合适的队列 并且放弃控制权限 因此等待队列表示一组睡眠的进程 当某一事
  • 基于Sql-Labs靶场的SQL注入-11~16关

    目录 Less 11 基于POST表单提交方式的字符型注入 爆破数据库名 爆破表名 爆破列名 爆破字段值 Less 12 基于POST表单提交方式的字符型注入 Less 13 基于POST表单提交方式的报错注入 爆破数据库名 爆破表名 爆破
  • HDLBits — Verilog Practice(每日一题)

    HDLBits Verilog Practice 每日一题 一 Getting Started 1 Getting Started 一 Getting Started 1 Getting Started 问题描述 Build a circu
  • C/C++面试笔试知识点总结

    C C 面试笔试知识点总结 1 const关键字的作用 变量 参数 返回值 2 什么是死锁 3 造成死锁的4个必要条件 4 如何避免死锁 5 static关键字作用 6 c c 中内存可以划分为几个部分 7 new 和 malloc的区别
  • DC-2靶机渗透测试

    1 信息收集 使用arp scan l扫描 扫描靶机开放端口 直接访问192 168 188 165发现无法访问被重定向到了 http dc 2 修改hosts文件 hosts文件是linux系统中负责ip地址与域名快速解析的文件 Linu
  • 关于实体类中多层嵌套集合,用mybatis的collection标签可以快速实现

    一 首先分析需求在有三个实体类的情况下 好比user类 Student YearClass类 结构如下 最外层类 public class user private String name private String age privat
  • png文件格式详解【转】

    5 2 2 PNG图像文件存储结构 1 PNG文件存储结构的格式可以在http www w3 org TR REC png htm上找到定义 BMP文件总体上由两部分组成 分别是PNG文件标志和数据块 chunks 如表5 8所示 其中数据
  • Spring Boot使用AOP实现拦截器

    Spring Boot 专栏 https blog csdn net dkbnull category 9278145 html Spring Cloud 专栏 https blog csdn net dkbnull category 92
  • 简单介绍 os.path 模块常用方法

    来源 Python之禅 os path 在python中也算是一个常用的模块 特别是和文件系统打交道时 涉及到文件 目录操作经常会用到 你去看一些框架的源代码的时候也经常会使用到这些方法 如果去看官方文档 os path 大概提供了近20个
  • Android使用Thread.UncaughtExceptionHandler捕获/分析异常信息

    Thread中提供了一个UncaughtExceptionHandler接口能够获取应用的crash信息 该方法设置系统的默认异常处理器 发生crash的时候 系统就会回调UncaughtExceptionHandler的uncaughtE
  • pycharm翻译插件失效解决方法

    pycharm翻译插件失效解决方法 习惯用pycharm写程序的应该都知道一个翻译插件 Translation 可是最近发现翻译用不了了 我就开始着手探究解决这个问题 原因 经过四处打寻 判定谷歌2022年9月26日左右停止了在中国地区的谷
  • Docker修改,保存与新建

    https zhuanlan zhihu com p 57311853 https www runoob com w3cnote docker use container create image html
  • ES6迭代器、Set、Map集合和async异步函数

    目录 迭代器 Iterator 的作用 Iterator 的遍历过程 Set Map集合 map和对象区别 async异步函数 迭代器 迭代器 Iterator 就是这样一种机制 它是一种接口 为各种不同的数据结构提供统一的访问机制 任何数
  • nginx设置成服务并开机自动启动

    在 etc init d下创建文件nginx vim etc init d nginx 其内容参考nginx官方文档 需要注意的配置 nginx usr local nginx sbin nginx 修改成nginx执行程序的路径 NGIN
  • python求解一阶线性偏微分方程通解举例

    python求解一阶线性偏微分方程的通解举例 Python求解偏微分方程也是其一个应用方面 下面举例说明 一 问题 求一阶线性偏微分方程 x f x
  • C#处理JSON

    C 中总共有两种方式处理JSON 第一种 右击项目 gt 添加 gt 引用 这里重点介绍第二种方式 第二种 使用NuGet包 对没错 是Json Net 需要引入的命名空间是 这种方式直接使用工具 不需要进行new 生成JSON文件 对于序
  • Flutter保存和加密数据

    你有没有想过它是如何在手机上处理数据的 让我们一起加密任何文件或模型 我们将要做的 首先 我们谈论使用Flutter的加密 接下来 我们将创建一个文件管理器来保存数据 稍后做加密和解密pdf文件 最后 使用您自己的模型保存加密的pdf 完成