介绍
本示例使用@ohos.security.huks相关接口实现了对任意输入内容进行加密和解密的功能。
实现场景如下:
1)使用新密钥进行消息加解密传输:使用HUKS的生成密钥接口在本地生成一个新密钥,模拟设备对发送的消息进行加密和对接收的消息进行解密场景。
2)使用旧密钥进行消息加解密传输:使用HUKS的导入密钥接口导入一个旧密钥,模拟在旧设备上对发送的消息进行加密,在新设备上对接收的消息进行解密的场景。
3)使用低安访问控制进行密码加解密:使用HUKS的生成密钥接口在本地生成一个新的密钥,模拟设备对密码进行加密和对接收的密码进行解密场景。
效果预览
使用说明
1.点击主页面的新密钥按钮,在新密钥界面的输入框中输入待发送的消息内容,点击发送消息 按钮,下方文本框中显示加密后的消息内容,然后点击接收消息按钮,下方文本框中显示解密后的消息内容。
2.点击主页面的旧密钥按钮,在旧密钥界面的输入框中输入待发送的消息内容,点击发送消息 按钮,下方文本框中显示加密后的消息内容,首先点击导入密钥按钮,弹窗提示导入密钥成功,然后点击接收消息按钮,下方文本框中显示解密后的消息内容。
3.点击主页面的低安访问控制按钮,在新密钥界面的输入框中输入待保存的密码内容,点击保存密码 按钮,下方文本框中显示加密后的密码内容,录入锁屏密码, 然后点击读取密码按钮,在输入PIN码(锁屏密码,需要预先录入)之后,下方文本框中显示解密后的消息内容。
工程目录
entry/src/main/ets/
|---common
| |---NewKey.ets // 新密钥组件
| |---OldKey.ets // 旧密钥组件
| |---MinAccessControl.ets // 低安访问控制组件
|---entryability
| |---EntryAbility.ts
|---model
| |---HuksModel.ts // 通用密钥库模型文件
| |---Logger.ts // 日志文件
|---pages
| |---Index.ets // 主页界面
| |---SelectPage.ets // 选择跳转界面
具体实现
- 使用新密钥、旧密钥与低安访问控制进行消息的加密和解密的功能接口封装在HuksModel中
- HuksModel.ts使用新密钥加密:在NewKey.ets文件中通过HuksModel.encryptData方式调用加密函数实现对发送的消息内容进行加密,设置好生成密钥和解密密钥的密钥属性信息,加密前会先调用生成密钥接口huks.generateKeyItem生成用于加密的AES密钥,对消息加密的过程中采用三段式接口huks.initSession,huks.updateSession,huks.finishSession完成加密操作。
- 使用新密钥解密:在NewKey.ets文件中通过HuksModel.decryptData方式调用解密函数实现对发送消息的解密,设置好解密密钥的密钥属性信息,使用加密时的密钥对消息进行解密,仍然是采用三段式接口完成解密操作,解密动作完成后调用删除密钥接口huks.deleteKeyItem清除本地保存的密钥。
- 使用旧密钥加密:在OldKey.ets文件中通过HuksModel.encryptDataUserOldKey方式调用加密函数对发送的消息内容进行加密,设置好加密密钥的密钥属性信息,采用三段式接口使用本地已保存的旧密钥完成加密操作。
- 使用旧密钥解密:在OldKey.ets文件中通过HuksModel.decryptDataUserOldKey方式调用解密函数对发送的消息内容进行解密,首先模拟在新设备上导入旧设备的加密密钥,同样采用三段式接口完成解密操作,解密完成后删除密钥。
- 使用低安访问控制管理密码:在MinAccessControl.ets文件中通过 huksModel.encryptDataUseSm2方式生成SM2密钥并调用加密函数对发送的消息内容进行加密,设置好加密密钥的密钥属性信息,采用两段式接口使用本地已保存的旧密钥完成加密操作。读取密码时(需先设定系统锁屏密码)调用IAM的PIN码(锁屏密码)接口进行验证。
相关权限
ohos.permission.ACCESS_BIOMETRIC
依赖
不涉及。
约束与限制
1.本示例仅支持标准系统上运行。
2.本示例支持API10版本SDK,SDK版本号(API Version 10 Release),镜像版本号(4.0Release)。
3.本示例需要使用DevEco Studio 版本号(4.0Release)及以上版本才可编译运行。
4.本示例在无设备证书的设备中运行时,需预先在本机命令行中"hdc shell setenforce 0"命令,才可保证示例功能正常执行。
下载
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo code/BasicFeature/Security/Huks/ > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master
为了帮助大家更深入有效的学习到鸿蒙开发知识点,小编特意给大家准备了一份全套最新版的HarmonyOS NEXT学习资源,获取完整版方式请点击→HarmonyOS教学视频:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3
HarmonyOS教学视频:语法ArkTS、TypeScript、ArkUI等…视频教程
鸿蒙生态应用开发白皮书V2.0PDF: 获取完整版白皮书方式请点击→https://docs.qq.com/doc/DZVVkRGRUd3pHSnFG?u=a42c4946d1514235863bb82a7b2ac128
鸿蒙 (Harmony OS)开发学习手册→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3
一、入门必看
1.应用开发导读(ArkTS)
2………
二、HarmonyOS 概念→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3
1.系统定义
2.技术架构
3.技术特性
4.系统安全
5…
三、如何快速入门?→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3
1.基本概念
2.构建第一个ArkTS应用
3…
四、开发基础知识→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3
1.应用基础知识
2.配置文件
3.应用数据管理
4.应用安全管理
5.应用隐私保护
6.三方应用调用管控机制
7.资源分类与访问
8.学习ArkTS语言
五、基于ArkTS 开发→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3
1.Ability开发
2.UI开发
3.公共事件与通知
4.窗口管理
5.媒体
6.安全
7.网络与链接
8.电话服务
9.数据管理
10.后台任务(Background Task)管理
11.设备管理
12.设备使用信息统计
13.DFX
14.国际化开发
15.折叠屏系列
更多了解更多鸿蒙开发的相关知识可以参考:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3