Bootstrap

鸿蒙开发实战-如何开发一个字符串加解密应用程序

介绍

本Codelab针对用户隐私安全,使用加密算法API对密码进行加密存储,模拟开发一个用户注册登录应用。实现如下功能:

  1. 实现登录、注册、登录成功页面。
  2. 注册的用户数据保存到关系型数据库。
  3. 登录时通过查询数据库校验用户是否存在、密码是否正确。
  4. 密码通过加密算法保存和使用。

相关概念

  • 加解密算法库框架:为屏蔽底层硬件和算法库,向上提供统一的密码算法库加解密相关接口。
  • 关系型数据库:关系型数据库(Relational Database,RDB)是一种基于关系模型来管理数据的数据库。

环境搭建

软件要求

  • DevEco Studio版本:DevEco Studio 3.1 Release。
  • OpenHarmony SDK版本:API version 9。

硬件要求

  • 开发板类型:润和RK3568开发板。
  • OpenHarmony系统:3.2 Release。

环境搭建

完成本篇Codelab我们首先要完成开发环境的搭建,本示例以RK3568开发板为例,参照以下步骤进行:

  1. 获取OpenHarmony系统版本:标准系统解决方案(二进制)。以3.2 Release版本为例:

2.搭建烧录环境。

  • 完成DevEco Device Tool的安装
  • 完成RK3568开发板的烧录

3.搭建开发环境。

  • 开始前请参考工具准备,完成DevEco Studio的安装和开发环境配置。
  • 开发环境配置完成后,请参考使用工程向导创建工程(模板选择“Empty Ability”)。
  • 工程创建完成后,选择使用真机进行调测。

代码结构解读

本篇Codelab只对核心代码进行讲解。

├──entry/src/main/ets                   // 代码区
│  ├──common
│  │  ├──constants
│  │  │  └──CommonConstants.ets         // 公共常量类
│  │  └──utils
│  │     ├──AesUtil.ets                 // 加解密工具类
│  │     ├──DataTransformUtil.ets       // 数据转换工具类
│  │     ├──Logger.ets                  // 日志打印工具类
│  │     └──PromptUtil.ts               // 弹窗工具类
│  ├──entryability
│  │  └──EntryAbility.ts                // 程序入口类
│  ├──model
│  │  ├──RdbModel.ets                   // 数据库业务处理文件
│  │  └──UserTableApi.ets               // 用户表具体业务文件
│  ├──pages
│  │  ├──Login.ets                      // 登录页
│  │  ├──Register.ets                   // 注册页
│  │  └──Welcome.ets                    // 欢迎页
│  └──viewmodel
│     └──User.ets                       // 用户实体类
└──entry/src/main/resources             // 资源文件目录

关系型数据库

首先编写创建表的SQL语句,其中user为表名、id为主键并自动递增、username为用户名、password为加密后的密码、authTag为加解密认证信息。

// CommonConstants.ets
  /**
   * 创建表的SQL语句
   */
  static readonly CREATE_TABLE_SQL: string = 'CREATE TABLE IF NOT EXISTS user(' +
    'id INTEGER PRIMARY KEY AUTOINCREMENT, ' +
    'username TEXT NOT NULL, ' +
    'password TEXT NOT NULL, ' +
    'authTag TEXT NOT NULL)';

在RdbModel的构造方法中ÿ

;