1# 保护密码类数据
2
3> **说明:**
4>
5> 密码类数据可以是密码、登录令牌、信用卡号等用户敏感数据。
6
7## 场景描述
8
9用户在应用/浏览器中登录账号时,可以选择“记住密码”(如图)。针对此种场景,应用/浏览器可以将用户密码存储在ASSET中,由ASSET保证用户密码的安全性。
10
11用户再次打开登录界面时,应用/浏览器可以从ASSET中查询用户密码,并将其自动填充到密码输入框,用户只需点击“登录”按钮即可完成账号登录,极大地提升了用户体验。
12
13![](figures/asset-scenario.png)
14
15## 关键流程
16
17业务调用ASSET保护密码类数据(后文统称为“关键资产”),可以参照以下流程进行开发。
18
19![](figures/flowchat-no-auth-required.png)
20
211. 业务查询符合条件的关键资产属性,根据查询成功/失败,判断关键资产是否存在。
22
23   开发步骤参考[查询关键资产(ArkTS)](asset-js-query.md) / [查询关键资产(C/C++)](asset-native-query.md),代码示例参考[查询单条关键资产属性(ArkTS)](asset-js-query.md#查询单条关键资产属性) / [查询单条关键资产属性(C/C++)](asset-native-query.md#查询单条关键资产属性)。
242. 如果关键资产不存在,业务可选择:
25    * 新增关键资产,开发步骤参考[新增关键资产(ArkTS)](asset-js-add.md) / [新增关键资产(C/C++)](asset-native-add.md)。
263. 如果关键资产存在,业务可选择:
27    * 删除关键资产,开发步骤参考[删除关键资产(ArkTS)](asset-js-remove.md) / [删除关键资产(C/C++)](asset-native-remove.md)。
28    * 更新关键资产,开发步骤参考[更新关键资产(ArkTS)](asset-js-update.md) / [更新关键资产(C/C++)](asset-native-update.md)。
29    * 查询关键资产明文,开发步骤参考[查询关键资产(ArkTS)](asset-js-query.md) / [查询关键资产(C/C++)](asset-native-query.md),代码示例参考[查询单条关键资产明文(ArkTS)](asset-js-query.md#查询单条关键资产明文) / [查询单条关键资产明文(C/C++)](asset-native-query.md#查询单条关键资产明文)。
30