1# 关键资产存储服务 2## 介绍 3本示例使用[@kit.AssetStoreKit](https://gitee.com/openharmony/docs/tree/master/zh-cn/application-dev/security/AssetStoreKit)相关接口实现了对敏感数据的保存、更新、查询、删除操作。 4 5实现场景如下: 6 71)用户使用本应用保存密码或信用卡号。 8 92)用户更新本应用管理的密码或信用卡号。 10 113)用户查询本应用管理的密码或信用卡号。 12 134)用户删除本应用管理的密码或信用卡号。 14 15## 效果预览 16| **保存页面** | **删除页面** | **更新列表页面** | **更新编辑页面** | 17|---------|----------|------------|----------| 18||||| 19| **查询页面** | **批量查询结果页面** | **单个查询结果页面** | 20||| 21 22使用说明: 23* 保存敏感数据: 24 * 输入账号、密码、标签,其中标签可以填写多个,但不超过4个 25 * 点击“保存”按钮 26 27* 删除敏感数据,可使用以下任意一种方式删除: 28 * 批量删除:不输入任何信息,或输入单个或多个标签),点击“删除”按钮 29 * 单个删除:输入账号、标签(可选),点击“删除”按钮 30* 更新敏感数据: 31 * 点击标题栏的“更新”,进入更新页面 32 * 在显示的账号列表中,点击待更新的账号 33 * 输入锁屏密码,进入编辑界面 34 * 输入更新后的密码和标签,点击“更新” 35* 查询敏感数据,可使用以下任意一种方式删除: 36 * 批量查询:不输入任何信息,或输入单个或多个标签),点击“查询”按钮,显示保存的信息列表,不含“密码/信用卡号” 37 * 单个查询:输入账号、标签(可选),点击“查询”按钮,输入锁屏密码,显示该账号详细信息,含“密码/信用卡号” 38 39## 工程目录 40``` 41entry/src/main/ets/ 42|---entryAbility 43| |---EntryAbility.ts 44|---model 45| |---AssetModel.ets // 关键资产存储模型文件 46|---pages 47| |---Index.ets // 主页面 48| |---QueryResultPage.ets // 查询结果界面 49| |---UpdatePage.ets // 更新页面 50``` 51## 具体实现 52本应用分为四个主页面:保存、删除、更新、查询,通过TabBuilder组件实现页面直接的切换。 53* **保存页面**:解析用户输入的账号、密码、标签信息,传入@kit.AssetStoreKit提供的add接口,从而实现将短敏感数据存储到关键资产存储服务中。 54 55* **删除页面**:解析用户输入的账号、标签信息,传入@kit.AssetStoreKit提供的remove接口,删除满足条件的短敏感数据。 56 57* **更新页面**: 58 59 1)调用@kit.AssetStoreKit提供的query接口,查询关键资产中存储的全量账号。 60 61 2)调用@kit.AssetStoreKit提供的preQuery接口,将返回的challenge传给@kit.UserAuthenticationKit提供的on接口。 62 63 3)待用户输入锁屏密码后,将onResult接口返回的AuthToken传给@kit.AssetStoreKit提供的query接口,用以查询旧的敏感数据明文。 64 65 4)解析用户输入的账号、标签信息,传入@kit.AssetStoreKit提供的update接口,更新关键资产存储服务中存储的敏感数据。 66 67 5)退出更新界面时,调用@kit.AssetStoreKit提供的postQuery接口清理资源 68 69* **查询页面**: 70 71 用户未输入账号: 72 73 解析用户输入的标签信息,传入@kit.AssetStoreKit提供的query接口,查询关键资产存储服务中存储的账号、标签。 74 75 用户输入了账号: 76 77 1)调用@kit.AssetStoreKit提供的preQuery接口,将返回的challenge传给@kit.UserAuthenticationKit提供的on接口。 78 79 2)待用户输入锁屏密码后,将onResult接口返回的AuthToken、用户输入的账号、标签信息传给@kit.AssetStoreKit提供的query接口,用以查询敏感数据明文。 80 81 3)调用@kit.AssetStoreKit提供的postQuery接口清理资源。 82 83## 相关权限 84[ohos.permission.ACCESS_BIOMETRIC](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-all.md#ohospermissionaccess_biometric) 85 86[ohos.permission.STORE_PERSISTENT_DATA](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-all.md#ohospermissionstore_persistent_data) 87 88## 依赖 89不涉及 90 91## 约束与限制 921.本示例仅支持标准系统上运行。 93 942.本示例支持API11版本SDK,SDK版本号(API Version 11 Release), 镜像版本号(4.1Release)。 95 963.本示例需要使用DevEco Studio版本号(4.1Release)及以上版本才可编译运行。 97 984.本示例需要在设备设置锁屏密码后使用。其中,更新、查询结果页面输入锁屏密码方可进入。 99 100## 下载 101如需单独下载本工程,执行如下命令: 102 103``` 104git init 105git config core.sparsecheckout true 106echo code/BasicFeature/Security/Asset/ > .git/info/sparse-checkout 107git remote add origin https://gitee.com/openharmony/applications_app_samples.git 108git pull origin master 109 110```