鸿蒙开发(NEXT/API 12)【为应用添加自动生成高强度密码的建议】系统安全

在本文档中介绍的强密码特指,在密码保险箱强密码填充场景中,推荐用户使用的较强密码。强密码中一定包含大写字母、小写字母、数字三种字符。且强密码的复杂度高,破解难度大。

当开发者没有指定密码规则,或是开发者指定的规则书写错误、不符合规范时,密码保险箱会根据默认的规则生成符合开发者指定条件的强密码。开发者可以在允许的范围内指定强密码的规格。

默认强密码规则

当开发者没有指定规则,或是指定的密码规则不符合规范时,将按照以下默认规则生成强密码。

  • 以字母开头。
  • 包含大小写字母和数字。
  • 长度为16位。

开发者可自定义的强密码规则

开发者可以设置新密码输入框的passwordRules属性来指定强密码规则。

强密码中一定包含大写字母、小写字母、数字三种字符。开发者可以按照以下指导对强密码规格做一些限定。

强密码规则包含3个属性:

3个属性可以任意选择,书写时顺序不做限制,属性之间以英文","进行分隔,每个属性只能出现一次。

说明

各属性段请严格参照介绍进行书写,否则将导致指定规则不生效。

  • "begin "

    表示生成的强密码首位的字符类型,可选的值如下表所示。可以缺省,但不能填入其他值,填入其他值按照缺省规则处理。

    取值 说明
    upper 以大写字母开头。
    lower 以小写字母开头。
    digit 以数字开头。
    不填 不填时,将以任意字母或数字0-9开头。

    格式举例:

    复制代码
    begin:[upper]
  • "special "

    表示生成的强密码是否可以包含特殊字符。需要包含特殊字符时,请将该字段设置为"yes";如不需要,不填写"special"字段。

    当设置为"yes"时,生成的强密码中将包含至少一个特殊字符,特殊字符不会出现在强密码的首位。

    强密码中可能出现的特殊字符包括:!@#$%^&*

    格式举例:

    复制代码
    special:[yes]
  • "len"

    表示生成的强密码长度。密码保险箱允许设定的强密码长度最小12位,最大32位。

    强密码长度属性提供三个关键字用于描述长度。

    关键字 说明
    fixedlen 固定长度
    minlen 最小长度
    maxlen 最大长度

    开发者可以根据以下方式指定强密码长度。如果开发者指定的密码长度数值不在有效范围12, 32内,将视为非法指定,系统将使用默认长度16位替代。

    1. 仅设置固定长度fixedlen,此时强密码长度为fixedlen设置值。

      复制代码
      len:[fixedlen:16]
    2. 仅设置最小长度minlen,此时强密码长度随机,最小长度为minlen设置值,最大为默认值32位。

      复制代码
      len:[minlen:15]
    3. 仅设置最大长度maxlen,此时强密码长度随机,最小长度为默认值12位,最大为maxlen设置值。

      复制代码
      len:[maxlen:28]
    4. 同时设置最大长度maxlen和最小长度minlen。设置时,minlen的值必须小于maxlen的值。此时强密码长度随机,最小长度为minlen设置值,最大为maxlen设置值。

      复制代码
      len:[minlen:13,maxlen:18]
    5. 若不指定len属性,强密码长度默认为16位。

自定义规则样例说明

正确的规则样例如下:

强密码规则样例 规则释义
begin:upper,special:yes,len:maxlen:32,minlen:12 以大写字母开头,包含大小写字母、数字、特殊字符,长度为12-32之间(包含12和32)的随机数值。
begin:lower,special:yes,len:maxlen:14 以小写字母开头,包含大小写字母、数字、特殊字符,长度为14-32之间(包含14和32)的随机数值。
begin:digit,special:yes,len:fixedlen:15 以数字开头,包含大小写字母、数字、特殊字符,长度为15。
begin:upper 以大写字母开头,包含大小写字母、数字,长度为16。
special:yes 以任意字母或数字开头,包含大小写字母、数字、特殊字符,长度为16。
len:fixedlen:15 以任意字母或数字开头,包含大小写字母、数字,长度为15。
begin:upper,special:yes 以大写字母开头,包含大小写字母、数字、特殊字符,长度为16。
begin:lower,len:maxlen:25,minlen:12 以小写字母开头,包含大小写字母、数字,长度为12-25之间(包含12和25)的随机数值。
special:yes,len:fixedlen:15 以任意字母或数字开头,包含大小写字母、数字、特殊字符,长度为15。

错误的规则用例如下:

强密码规则错误用例 错误原因
begin:uppper begin属性的取值upper拼写错误。
began:upper begin属性拼写错误。
len:15 len属性语法错误,未使用三种长度关键词。
len:fixedlen:15,maxlen:18 len属性语法错误,fixedlen与maxlen不可混用。
len:maxlen:15,minlen:18 len属性参数值错误,maxlen的取值不能小于minlen。

示例

复制代码
TextInput({ placeholder: '新密码' })
    .enableAutoFill(true)
    .type(InputType.NEW_PASSWORD)
    .passwordRules('begin:[lower],special:[yes],len:[maxlen:32,minlen:12]')
    .placeholderColor(0x182431)
    .width('100%')
    .opacity(0.6)
    .showPasswordIcon(true)
    .placeholderFont({ size: 16, weight: FontWeight.Regular })
    .margin({ bottom: 36 })
相关推荐
lilian23331 分钟前
Harmony os 技术实战|拼豆制图27:用单字符编码承载 50 张 70×70 图纸
前端·数据库·华为·harmonyos
一只鹿鹿鹿1 小时前
大数据中心安全系统解决方案(Word文件)
大数据·运维·物联网·安全·政务
Fnetlink11 小时前
开源安全年度报告:2026上半年20大最具破坏性破坏事件深度复盘
安全·开源
国科安芯2 小时前
ASL706S:让 MCU 不再“失忆跑飞“的守护芯片
分布式·单片机·嵌入式硬件·安全·fpga开发·架构
AuTumn-L3 小时前
使用 SSH 密钥认证实现安全免密登录
服务器·安全·ssh
rcms152702692185 小时前
TEL 3880-200230-V1 通讯接口模块
安全
HwJack206 小时前
UIAbility 生命周期全链路:从冷启动到热启动的实战笔记
笔记·华为·harmonyos
九硕智慧建筑一体化厂家6 小时前
直流智能照明|全场景节能升级!打造安全低碳的智慧建筑光环境
运维·笔记·安全·智慧城市
松小鼠呀6 小时前
我不敢再生孩子:ChatGPT 曾花 $2m 让他闭嘴,AI 巨头到底隐藏了什么秘密?
人工智能·安全·chatgpt·ai编程·科技热点
梦想不只是梦与想6 小时前
鸿蒙 AppGallery Connect:应用创建(二)
harmonyos·appgallery·创建应用