介绍
本Codelab针对用户隐私安全,使用加密算法API对密码进行加密存储,模拟开发一个用户注册登录应用。实现如下功能:
- 实现登录、注册、登录成功页面。
- 注册的用户数据保存到关系型数据库。
- 登录时通过查询数据库校验用户是否存在、密码是否正确。
- 密码通过加密算法保存和使用。
相关概念
- 加解密算法库框架:为屏蔽底层硬件和算法库,向上提供统一的密码算法库加解密相关接口。
- 关系型数据库:关系型数据库(Relational Database,RDB)是一种基于关系模型来管理数据的数据库。
环境搭建
软件要求
- DevEco Studio版本:DevEco Studio 3.1 Release。
- OpenHarmony SDK版本:API version 9。
硬件要求
- 开发板类型:润和RK3568开发板。
- OpenHarmony系统:3.2 Release。
环境搭建
完成本篇Codelab我们首先要完成开发环境的搭建,本示例以RK3568开发板为例,参照以下步骤进行:
- 获取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的构造方法中ÿ