[go: up one dir, main page]

CN114911356B - 一种基于鸿蒙系统的密码输入的方法和系统 - Google Patents

一种基于鸿蒙系统的密码输入的方法和系统 Download PDF

Info

Publication number
CN114911356B
CN114911356B CN202210333842.3A CN202210333842A CN114911356B CN 114911356 B CN114911356 B CN 114911356B CN 202210333842 A CN202210333842 A CN 202210333842A CN 114911356 B CN114911356 B CN 114911356B
Authority
CN
China
Prior art keywords
password
keyboard
encryption
key
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210333842.3A
Other languages
English (en)
Other versions
CN114911356A (zh
Inventor
王志勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Financial Certification Authority Co ltd
Original Assignee
China Financial Certification Authority Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Financial Certification Authority Co ltd filed Critical China Financial Certification Authority Co ltd
Priority to CN202210333842.3A priority Critical patent/CN114911356B/zh
Publication of CN114911356A publication Critical patent/CN114911356A/zh
Application granted granted Critical
Publication of CN114911356B publication Critical patent/CN114911356B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

本发明公开了一种基于鸿蒙系统的密码输入的方法和系统。所述方法包括:响应于输入密码请求,加载密码输入框,以便在所述密码输入框中接收密码;响应于加载密码输入框,生成自定义键盘;通过所述自定义键盘接收在所述密码输入框中输入的密码;以及对所述密码进行基于内存加密的第一加密和基于SM2数字信封的第二加密。本发明的密码输入的方案,利用JSON配置语言对键盘进行定制,从而大大提高了键盘界面定制的效率。同时,本发明的方案通过对输入的密码进行双重加密,从而提高了密码输入的安全性。另外,利用本发明的密码输入的方案进行密码输入,还可以实现防止第三方键盘替换、键盘钩子窃取密码以及防止截屏或录屏操作等功能。

Description

一种基于鸿蒙系统的密码输入的方法和系统
技术领域
本发明一般地涉及操作系统安全领域。更具体地,本发明涉及一种基于鸿蒙系统的密码输入的方法和系统。
背景技术
智能手机等移动终端的飞速普及已经对人类的生产、生活产生越来越大的影响;其中用户在手机端使用各类金融软件并输入用户密码已经成为一种常见的行为。因此,如何保障密码输入的安全性,已经成为保证用户财产安全的重要问题。目前,手机端常用的密码输入方式是使用手机自带的数字键盘,其包括0-9十个固定的数字按键以及一个确定按键和一个撤销按键。这种键盘的特点在于,这0-9十个数字按键的数字排列顺序固定,因此偷窥者可以通过记住用户的按键顺序,并从手机数字键盘中数字的固定排列顺序推算出用户的密码,从而造成用户的账户和密码的泄漏,进一步导致其资金受到损失。
除此之外,使用手机自带的系统键盘输入密码还会遇到以下问题。首先,系统键盘在使用过程中有可能会被第三方键盘替换,由此用户输入的密码内容完全暴露于第三方,从而存在将用户的个人隐私暴露于第三方的危险。其次,使用手机自带的系统键盘还容易被不法人员利用键盘钩子技术对输入内容进行监听。在这个过程中,用户在系统键盘上每按下一个键都会向操作系统发出相应的按键事件并携带输入的字符信息,由此第三方可以通过相关程序来进行事件监听,从而获取到当前用户的输入内容。
进一步地,使用系统键盘进行输入,其输入内容在手机内存中将以明文的形式存在。这样第三方可以利用软件工具通过内存dump的方式来获取内存中的数据,进而分析出明文所在的地址,最终获取用户的密码信息,从而导致安全隐患。再者,当利用系统键盘输入密码时,通过对手机进行截屏或录屏操作可能会将输入框中的内容或键盘的按键反馈状态等信息截取下来,从而造成输入信息的泄露。另外,目前手机使用的系统键盘的外观效果由操作系统决定,因此其模式固定,而针对目前大量涌现的APP软件,系统键盘显然不能与多数的APP的外观相匹配,从而导致APP无法根据自身的配色、图标等定制键盘样式。
针对上述问题,虽然现有技术中出现一些关于在手机终端上安全输入的解决方案,但是其主要是针对于安卓(Android)和苹果(IOS)系统,而针对于以鸿蒙系统(HarmonyOS)为操作系统的手机来说,并没有相应的密码安全输入的解决方案。例如,为了防止对手机进行截屏或者录屏,现有技术中Android安全控件仅仅是调用了一下系统接口,这样将影响APP在其它场景下正常使用截屏或录屏的功能。进一步地,为了使得输入的密码在传输过程中更加安全,通常需要将密码进行加密处理。对此,现有技术中通常采用AES加密技术,该技术首先通过对输入的密码进行整体AES加密,这样每次输入一个字符就要把先前加密的数据进行解密;接着,再和当前输入的字符拼接起来重新加密。经过这样的加密处理其内存中仍然有很多明文存在,从而使得第三方通过获取这些明文就可以盗取密码。
发明内容
为解决上述背景技术中的一个或多个问题,本发明提供了一种基于鸿蒙系统的密码输入的方法和系统。由此,可以实现当在手机端输入密码时,首先关闭系统键盘,接着弹出自定义键盘,以便对通过自定义键盘输入的密码进行加密操作,从而最终实现对密码进行安全输入的效果。为此,本发明在如下的多个方面提供解决方案。
具体地,一方面,本发明公开了一种基于鸿蒙系统的密码输入的方法。该方法包括:响应于输入密码请求,加载密码输入框,以便在所述密码输入框中接收密码;响应于加载密码输入框,生成自定义键盘;通过所述自定义键盘接收在所述密码输入框中输入的密码;以及对所述密码进行基于内存加密的第一加密和基于SM2数字信封的第二加密。
在一个实施例中,在所述生成自定义键盘的过程中,所述方法包括:响应于所述密码输入框获取焦点,关闭系统键盘;解析键盘界面配置数据,以便将其转换成键盘模型数据;根据所述键盘模型数据绘制所述自定义键盘。
在另一个实施例中,在所述生成自定义键盘的过程中,所述方法还包括:在所述自定义键盘中添加仅包含按键坐标位置的触摸事件,以便防止泄露密码输入过程中的按键字符信息。
在又一个实施例中,所述键盘界面配置数据包括json配置文件,所述方法还包括:解析所述json配置文件,以获得一个或多个键盘模型的模型数据。
在一个实施例中,所述键盘界面配置数据还包括json入口文件,其用于指示每个所述json配置文件所对应的键盘类型以及所述json配置文件之间的关系。
在另一个实施例中,所述json配置文件包括定义所述自定义键盘的按键属性和键盘属性的多个参数。
在又一个实施例中,在对所述密码进行基于内存加密的第一加密中,所述方法包括:随机生成SM4密钥K1;将接收到的每一个密码字符与随机数进行拼接;使用所述密钥K1进行SM4加密;以及将加密结果存储到密文数组中,从而保证在密码输入后,内存中不存在密码明文。
在一个实施例中,在对所述密码进行基于SM2数字信封的第二加密中,所述方法包括:将所述密文数组中的数据解密;随机生成SM4密钥K2;利用所述密钥K2对所述数据解密的结果进行加密以便得到第一加密结果;利用内置的SM2公钥对所述密钥K2加密得到第二加密结果;以及将所述第一加密结果和第二加密结果组装成SM2数字信封,以作为本次输入的加密结果。
在另一个方面中,本发明还公开了一种基于鸿蒙系统的密码输入的设备。该设备包括:处理器;以及存储器,其存储有用于实现密码安全输入的计算机程序指令,以实现上述实施例中任意一项所述的方法。
在又一个方面中,本发明还公开了一种计算机可读存储介质,其存储有用于实现密码安全输入的计算机程序指令,当所述计算机程序指令由处理器执行时,实现上述实施例中任意一项所述的方法。
利用上述多个方面及其实施例所描述的方案,本发明可以实现对自定义键盘的外观样式进行便捷更换,从而克服了现有技术中的系统键盘模式单一固定,与APP外观不匹配的弊端。进一步地,由于本发明在自定义键盘中加入了相应的触摸事件,由此使得第三方无法通过坐标位置推断出字符信息,从而防止了利用键盘钩子窃取密码。另外,本发明的方案对用户输入的密码进行了基于内存加密的第一加密,从而克服了现有技术中输入的密码在内存中以明文形式存储而容易被窃取的弊端。进一步地,通过进行基于SM2数字信封的第二加密,并加入从服务器端发送过来的随机数,由此可以防止第三方重放攻击。另外,本发明的方案在自定义键盘弹出时通过调用相关软件方法来关闭系统截屏或录屏的功能,克服了现有技术中手机屏幕容易被截屏或录屏的弊端,从而进一步保证了手机密码输入的安全性。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
图1是示出根据本发明实施例的密码安全输入的方法流程图;
图2是示出根据本发明实施例的生成自定义键盘的方法流程图;
图3是示出根据本发明实施例的json配置文件的keyboardParams参数的属性及含义图;
图4是示出根据本发明实施例的json配置文件的keyParams参数的属性及含义图;以及
图5是示出根据本发明实施例的json配置文件的keyStyles参数的属性及含义图。
具体实施方式
下面将参考附图描述本发明的多个方面及其对应的实施例。应当理解的是,为了表述的简单和清楚,在合适的情况下,可以在附图中重复附图标记以指示对应或类似的元件。另外,本发明阐述了许多具体细节以便提供对本文所述实施例的透彻理解。然而,基于本发明的公开和教导,本领域普通技术人员也可以在没有这些具体细节的情况下实践本文描述的实施例。在其他情况下,对于公知的方法、过程和组件,本发明将不再描述以免模糊本发明旨在保护的方案。另外,本发明的下文描述旨在对本发明的方案进行全面和示例性的描述,而该描述也不应被视为限制本文描述的实施例的范围。
图1是示出根据本发明实施例的密码安全输入的方法100流程图。
如图1所示,本发明的基于鸿蒙系统的密码安全输入的方法100开始于步骤S101。在该步骤处,响应于输入密码请求,加载密码输入框,以便在所述密码输入框中接收密码。在一个实施例中,用户(例如鸿蒙系统手机使用者)在手机端欲登陆某APP软件,此时需要用户输入用户名和密码,以便APP软件后台进行身份验证,其中当用户点击密码输入框的时候,即将其激活。由此,鸿蒙系统接受该密码输入框的激活状态,以完成加载密码输入框的功能。
接着,方法100执行步骤S102。在该步骤处,响应于加载密码输入框,生成自定义键盘。在一个实施例中,当系统加载密码输入框之后,为了防止用户使用鸿蒙系统手机自带的系统键盘,从而造成利用系统键盘输入密码而带来的安全隐患,本发明采取了关闭(或隐藏)系统键盘的方法。具体地,首先由系统注册焦点监听事件。接着,当密码输入框获取焦点时,系统通过调用clearFocus方法来隐藏系统键盘。当系统键盘被隐藏之后,系统将生成一个软键盘,该软键盘根据键盘模型数据将需要展示的自定义键盘绘制出来,并接受用户的点击,其中自定义键盘的绘制过程将在下文的图2中进行详细地描述。进一步地,为了使得在生成自定义键盘之前,保证有足够的时间来隐藏系统键盘,本发明在显示自定义键盘时,采用了延迟执行模块技术,由此保证了有足够的时间来隐藏系统键盘。
随后,方法100的流程前进到步骤S103。在此步骤处,系统通过所述自定义键盘接收在密码输入框中输入的密码。换句话说,在该步骤处,用户通过手机屏幕看到弹出的自定义键盘,并根据需要在自定义键盘上进行按键以便进行相应APP的密码输入。在这个过程中,系统可以通过事件PRIMARY_POINT_DOWN及POINT_MOVE来判断当前是否按下字符,并通过改变背景颜色、弹出气泡和发出提示音等方式提示用户。进一步地,系统通过事件PRIMARY_POINT_UP来获取当前输入的密码,随后清除按键按下的效果。
最终,方法100终止于步骤S104。在该步骤处,系统对输入的密码进行基于内存加密的第一加密和基于SM2数字信封的第二加密。具体地,为了保障用户输入的密码本身以及在将其传输到系统后台的过程中的安全性,本发明采取了对输入的密码进行二次加密的过程。下面分别予以描述。
在一个实施例中,首先本发明对于在步骤S103处输入的密码进行基于内存加密的第一加密。该加密过程如下:首先,鸿蒙系统的控件在初始化时,随机生成大小为16个字节的SM4密钥K1;接着,系统将接收到的每一个密码字符与大小为15个字节的随机数进行拼接;随后,系统使用密钥K1对上述拼接后的结果进行SM4加密;最终,系统将上述加密结果存储到内存中的密文数组中。由上述加密的过程可以理解的是,由于本发明的第一加密过程在加密过程中采取了SM4算法,其在用户每输入一个密码字符时都单独进行加密处理,最终得到一个密文数组,从而使得在密码输入后,内存中不存在密码明文。因此相比于现有的加密技术,该第一加密过程设计更加安全,从而避免了用户输入的密码被第三方窃取了风险。
在对输入的密码进行完基于内存加密的第一加密后,本发明在第一加密的结果的基础上执行基于SM2数字信封的第二加密。该加密过程如下:首先,将上述经过第一加密并保存在密文数组中的数据进行解密。接着,利用随机生成的大小为16个字节的SM4密钥K2对上述解密的结果进行加密以便得到第一加密结果C1;随后,利用内置的SM2公钥对密钥K2加密得到第二加密结果C2;最终,将上述第一加密结果C1和第二加密结果C2组装成SM2数字信封,以作为本次输入的加密结果。优选地,在上述使用K2进行加密时,可以加入从服务器端发送过来的随机数,从而可以防止重放攻击。由上述加密的过程可以理解的是,由于本发明的第二加密过程采用了SM2数字信封技术,因此,相比于现有技术中的加密结果由客户传输密钥,本发明的第二加密过程在传输密码时会更加安全。
图2是示出根据本发明实施例的生成自定义键盘的方法200流程图。
如图2所示,本发明的生成自定义键盘的方法200可以开始于步骤S201。在该步骤处,响应于所述密码输入框获取焦点,关闭系统键盘。在一个实施例中,本发明采用当继承系统输入框TextField获取焦点时关闭系统键盘并弹出自定义键盘的方式来防止被第三方键盘替换以及被键盘钩子监听,从而使得密码输入不安全。具体地,首先系统注册焦点监听事件,当继承系统输入框TextField获取焦点时(例如用户通过手指或者鼠标点击选中输入框时,该输入框即获得焦点),通过调用clearFocus方法来隐藏系统键盘。进一步地,本发明还可以利用延迟执行模块,例如通过调用MainEventRunner.postTask的方法,从而使得系统拥有足够的时间来隐藏或者关闭系统键盘。
接下来,生成自定义键盘的方法200的流程前进到步骤S202。在该步骤处,系统解析键盘界面(UI)配置数据,以便将其转换成键盘模型数据。具体地,本发明的键盘界面(UI)配置数据可以包括一个或多个json配置文件,其中每个json配置文件对应于一个键盘模型数据。通过json配置文件,可以描述一个自定义键盘的背景颜色、行数、每行的列数、行间距、按键间距、按键宽高和按键字体等所有与布局样式有关的属性。进一步地,json配置文件的名字可以自定义,其后缀名可以用_phone和_pad进行区分,以此来表明该配置文件是适配手机还是适配Pad的键盘布局。特别地,如果没有针对pad的json配置文件,则在Pad上使用phone的键盘布局。
在一个实施例中,本发明的json配置文件可以包括定义键盘的按键属性和键盘属性的多个参数。作为一个具体的实施方式,例如可以将json配置文件配置成包含3个参数keyboardParams、keyParams和keyStyles的文件。需要说明的是,在定义具体按键的属性之前,首先需要定义两个属性normalInputKey和normalFunctionKey,这两个属性定义了普通输入按键和普通功能按键的属性。对于具有特殊属性的按键,则需要进行单独定义。在定义了上述两个属性之后,就可以利用属性“key_行数_列数”对一个按键进行描述,例如key_0_0表示第0行第0列的按键。特别地,如果某些按键类型和样式一样则可以用“key_行数_起始列数_结束列数”进行批量定义,例如key_0_0_8表示第0行第0列至第8列的按键。下面分别结合图3-5对上述json配置文件的三个参数的具体属性和含义进行描述。
图3是示出根据本发明实施例的json配置文件的keyboardParams参数的属性及含义图。
如图3所示,本发明的json配置文件可以设置keyboardParams参数,以便用于定义自定义键盘的键盘属性。作为具体示例,例如可以将keyboardParams参数设置为id,以此来定义键盘标识,当不同类型的键盘进行切换则需要使用该标识。进一步地,还可以将keyboardParams参数设置为width和height,以此来定义自定义键盘的宽度和高度;类似地,通过将keyboardParams参数设置为rowNumber和columns以分别来定义自定义键盘的行数和列数。另外,还可以通过将keyboardParams参数设置为leftMargin、rightMargin、topMargin、bottomMargin、rowSpacing和keySpacing,以此来分别定义键盘的左边距、右边距、上边距、下边距、行间距和按键间距。类似地,通过将keyboardParams参数设置为digitTitles、letterTitles和symbolTitles以分别定义键盘的数字按键标题、字母按键标题和符号按键标题;另外,通过将keyboardParams参数设置为showBubble来实现是否显示气泡的功能。
图4是示出根据本发明实施例的json配置文件的keyParams参数的属性及含义图。
如图4所示,本发明的json配置文件可以设置keyParams参数,以便用于定义自定义键盘的按键的属性。作为具体示例,例如所述keyParams参数可以设置为width、heigth和leftMargin,以此来分别定义按键的宽度、高度和左边距,其中此处的左边距是指距离左边的按键的距离,如果左边没有按键,则该左边距是距离键盘左侧的距离。进一步地,还可以将keyParams参数设置为不同的type的类型来确定按键的功能或者表明title如何显示。具体地,type的类型可以为letter、digit、symbol、delete、capslock、done、space、switch和back;对应地,其含义可以分别表示为字母键、数字键、符号键、删除键、大小写切换键、完成键、切换键和返回键。另外,还可以将keyParams参数设置为positionFixed,以此来实现乱序时是否固定位置的功能。
图5是示出根据本发明实施例的json配置文件的keyStyles参数的属性及含义图。
如图5所示,本发明的json配置文件可以设置keyStyles参数,以便用于定义利用自定义键盘的按键输入时的属性。作为具体示例,例如可以通过将keyStyles参数分别设置为color和backgroundColor,以此来实现输入字体的颜色效果以及背景颜色效果,其中所有颜色用RGBA十六进制字符串表示。进一步地,该color属性可以是一个数组,其中第一个颜色表示正常颜色,而第二个颜色则表示高亮颜色。
另外,还可以通过将keyStyles参数设置为fontName、fontSize、cornerRadius、shadowColor、shadowOffset;与之对应地,上述属性分别表示字体名称、字体大小、圆角矩形的弯曲半径、阴影颜色和阴影偏移。进一步地,还可以通过将keyStyles参数设置为title、image、backgroundImage、borderWidth和borderColor,其分别表示功能按键的标题、功能按键的图标名字、功能按键的背景图片、边框宽度和边框颜色。另外,为了对气泡进行相关设置,可以将keyStyles参数设置为bubbleFontName、bubbleFontSize和bubbleType,并且分别表示气泡字体名称、气泡字体大小和气泡类型(其类型可以为left、right和center)。
在一个实施例中,本发明的键盘界面(UI)配置数据还可以包括json入口文件,其用于指示每个json配置文件所对应的键盘类型以及各json配置文件之间的关系。一般地,现有技术中的键盘只包括数字、字母和符号三种类型,但是本发明可以支持扩展功能,其可以任意增加键盘类型,例如其可以是身份证键盘和金额键盘等。另外,每种键盘类型还可以包括多个子键盘,例如字母键盘可以包括大写键盘和小写键盘两种。进一步地,json入口文件中定义了parent属性来表示相同类型的键盘之间的继承关系,其中子文件会继承父文件中定义的所有属性,并可以用其文件中定义的属性来重写父文件属性。
需要说明的是,上述步骤S202中对JSON配置文件的解析是在密码输入框加载时完成的。当输入框加载完成之后,对JSON配置文件的解析也即完成,因此当再次输入密码时则无需再次解析,只需根据已经解析好的模型数据绘制自定义密码键盘即可。
最终,生成自定义键盘的方法200终止于步骤S203。在该步骤处,系统根据在步骤S202处转换的键盘模型数据绘制自定义键盘。具体地,系统首先调用WindowManager并且继承系统Component对象。接着,在初始化时为Component对象添加一个绘制任务DrawTask,该任务将根据在步骤S203处将json配置文件解析所获得的键盘模型数据在当前窗口上绘制自定义键盘组件,从而显示出自定义键盘。在上述绘制过程中,首先绘制键盘的背景颜色;接着从左上角开始,按照从左到右,从上到下的顺序,逐渐地渲染出按键的位置、大小、背景颜色或背景图片、内容(字符或图片)和阴影等。需要说明的是,在对不同类型的键盘进行切换时,已经绘制好的键盘无需再次绘制,只需控制其为显示或隐藏状态即可。
在一个实施例中,本发明在生成自定义键盘时,可以添加触摸事件TouchEventListener。在该事件中仅包含按键触摸的坐标位置,这样当用户通过敲击自定义键盘而输入密码时,即使第三方获取到敲击按键的坐标,其也不会泄露按键的字符信息。优选地,本发明的自定义键盘按键可以设置为乱序展示。鉴于此,即使第三方获取了坐标位置信息,其也无法通过该坐标位置推断出字符信息,从而防止了第三方利用键盘钩子窃取密码的行为。
在另一个实施例中,本发明的密码输入方法还可以灵活地实现防止系统截屏或录屏的功能。具体地,在生成并弹出自定义键盘时,系统通过调用方法Ability.getWindow().addFlags(WindowManager.LayoutConfig.MARK_SECURE)来关闭系统截屏或录屏的功能。进一步地,在自定义键盘关闭时,系统通过调用方法Ability.getWindow().addFlags(WindowManager.LayoutConfig.MARK_SECURE)来开启系统截屏或录屏功能。本发明正是由于采取了这种在自定义键盘弹出时防止进行截屏或录屏操作,而在键盘关闭时打开截屏或录屏功能的工作方式,从而使得用户在其它场景下操作APP时,不影响正常使用截屏或录屏功能。
本发明一方面实现了前文所述的一种基于鸿蒙系统的密码输入的方法。另一个方面,本发明还公开了一种基于鸿蒙系统的密码输入的设备。该设备可以包括处理器和存储器,其中所述处理器可以由具有分析、判断和计算能力的CPU组成。进一步地,所述CPU可以是通用CPU、专用CPU或者其他可以进行信息处理以及程序运行的执行单元。所述存储器存储可以包括大容量存储器和只读存储器ROM,其用于存储实现密码安全输入的计算机程序指令,当所述计算机程序指令由处理器执行时,可以实现前述的一种基于鸿蒙系统的密码输入的方法。
又一方面,本发明还公开了一种计算机可读存储介质,其存储有用于实现密码安全输入的计算机程序指令,当所述计算机程序指令由处理器执行时,可以实现前述的一种基于鸿蒙系统的密码输入的方法。应当理解,上述的计算机可读存储介质,诸如存储介质、计算机存储介质或数据存储设备(可移除的、和/或不可移动的),例如磁盘、光盘或磁带,其用于存储的信息可以包括:例如计算机可读指令、数据结构、程序模块或其他数据等。
基于上文的描述,可以理解的是,本发明的一种基于鸿蒙系统的密码输入方法可以包括输入框层,软键盘层及加密层。进一步地,在输入框层系统完成响应于输入密码请求,加载密码输入框,以便在密码输入框中接收密码的功能;在软键盘层,系统完成响应于加载密码输入框,生成自定义键盘的功能;在加密层系统完成通过自定义键盘接收在密码输入框中输入的密码,以便对所述密码进行基于内存加密的第一加密和基于SM2数字信封的第二加密的功能。
综上所述,相比于现有技术,本发明的方案设计了一种键盘UI元素JSON配置语言,从而大大提高了键盘UI的定制效率。与现有Android系统安全控件的JSON配置语言相比,本发明方案的扩展性更强,其可支持任意多种类型键盘,并且每种类型键盘还支持任意多个子键盘。进一步地,对于每个键盘按键样式的配置,本发明的方案不但可以配置按键位置和大小,而且还可以配置诸如背景颜色、图片、阴影、气泡以及按键按下后的颜色、图片等。另外,现有技术中的Android系统安全控件在用户每次点击输入框时都需要解析JSON配置文件,而本发明的方案中对于JSON配置文件的解析在输入框加载时就已经完成,从而当用户再次点击输入框显示键盘或者切换键盘类型时无需再次解析,使得本发明的密码输入方法运行效率更高。
应当理解,当本发明的权利要求、说明书及附图使用术语“第一”、“第二”、“第三”和“第四”等时,其仅是用于区别不同对象,而不是用于描述特定顺序。本发明的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本发明。如在本发明说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本发明说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当... 时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
虽然本发明的实施方式如上,但所述内容只是为便于理解本发明而采用的实施例,并非用以限定本发明的范围和应用场景。任何本发明所述技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (7)

1.一种基于鸿蒙系统的密码输入的方法,包括:
响应于输入密码请求,加载密码输入框,以便在所述密码输入框中接收密码;
响应于加载密码输入框,生成自定义键盘;
通过所述自定义键盘接收在所述密码输入框中输入的密码;以及
对所述密码进行基于内存加密的第一加密和基于SM2数字信封的第二加密;
其中在所述生成自定义键盘的过程中,所述方法包括:
响应于所述密码输入框获取焦点,关闭系统键盘;
解析键盘界面配置数据,以便将其转换成键盘模型数据;以及
根据所述键盘模型数据绘制所述自定义键盘;
其中对所述密码进行基于内存加密的第一加密过程中,所述方法包括:
随机生成SM4密钥K1;
将接收到的每一个密码字符与随机数进行拼接;
使用所述密钥K1进行SM4加密;以及
将加密结果存储到密文数组中,从而保证在密码输入后,内存中不存在密码明文;
其中在对所述密码进行基于SM2数字信封的第二加密过程中,所述方法包括:
将所述密文数组中的数据解密;
随机生成SM4密钥K2;
利用所述密钥K2对所述数据解密的结果进行加密以便得到第一加密结果;
利用内置的SM2公钥对所述密钥K2加密得到第二加密结果;以及
将所述第一加密结果和第二加密结果组装成SM2数字信封,以作为本次输入的加密结果。
2.根据权利要求1所述的方法,其中在所述生成自定义键盘的过程中,所述方法还包括:
在所述自定义键盘中添加仅包含按键坐标位置的触摸事件,以便防止泄露密码输入过程中的按键字符信息。
3.根据权利要求1所述的方法,其中所述键盘界面配置数据包括json配置文件,所述方法还包括:
解析所述json配置文件,以获得一个或多个键盘模型的模型数据。
4.根据权利要求3所述的方法,其中所述键盘界面配置数据还包括json入口文件,其用于指示每个所述json配置文件所对应的键盘类型以及所述json配置文件之间的关系。
5.根据权利要求3所述的方法,其中所述json配置文件包括定义所述自定义键盘的按键属性和键盘属性的多个参数。
6.一种基于鸿蒙系统的密码输入的设备,包括:
处理器;以及
存储器,其存储有用于实现密码安全输入的计算机程序指令,以实现根据权利要求1-5的任意一项所述的方法。
7.一种计算机可读存储介质,其存储有用于实现密码安全输入的计算机程序指令,当所述计算机程序指令由处理器执行时,实现根据权利要求1-5的任意一项所述的方法。
CN202210333842.3A 2022-03-30 2022-03-30 一种基于鸿蒙系统的密码输入的方法和系统 Active CN114911356B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210333842.3A CN114911356B (zh) 2022-03-30 2022-03-30 一种基于鸿蒙系统的密码输入的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210333842.3A CN114911356B (zh) 2022-03-30 2022-03-30 一种基于鸿蒙系统的密码输入的方法和系统

Publications (2)

Publication Number Publication Date
CN114911356A CN114911356A (zh) 2022-08-16
CN114911356B true CN114911356B (zh) 2024-07-23

Family

ID=82762827

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210333842.3A Active CN114911356B (zh) 2022-03-30 2022-03-30 一种基于鸿蒙系统的密码输入的方法和系统

Country Status (1)

Country Link
CN (1) CN114911356B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103076988A (zh) * 2012-12-28 2013-05-01 银联商务有限公司 一种密码输入方法及装置
CN104852961A (zh) * 2015-04-09 2015-08-19 黎建军 一种物联网数据传输方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112187461A (zh) * 2020-09-28 2021-01-05 中国人民解放军海军航空大学 一种基于加密算法的武器装备数据混合加密方法
CN112507326B (zh) * 2020-12-16 2023-11-28 平安国际智慧城市科技股份有限公司 基于sm3杂凑算法的密码信息加密方法、装置以及计算机设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103076988A (zh) * 2012-12-28 2013-05-01 银联商务有限公司 一种密码输入方法及装置
CN104852961A (zh) * 2015-04-09 2015-08-19 黎建军 一种物联网数据传输方法

Also Published As

Publication number Publication date
CN114911356A (zh) 2022-08-16

Similar Documents

Publication Publication Date Title
US20220300584A1 (en) Systems and methods for adding watermarks using an embedded browser
US10025952B1 (en) Obfuscation of sensitive human-perceptual output
CN104584086B (zh) Pin验证
CN109214161B (zh) 一种二维码安全标签登录系统
CN107273736B (zh) 密码输入方法、装置、计算机设备和存储介质
US20100242104A1 (en) Methods and systems for secure authentication
CN105335633B (zh) 一种移动终端防偷窥方法及移动终端
US8661532B2 (en) Method and apparatus for authenticating password
CN111783055A (zh) 账户信息管理方法、装置及电子设备
CN111344707A (zh) 包括显示器的电子设备以及加密和解密信息的方法
CN106446709A (zh) 应用程序分身方法及系统
US20160012617A1 (en) Apparatus and method for providing feedback on input data
CN114911356B (zh) 一种基于鸿蒙系统的密码输入的方法和系统
WO2022247865A1 (zh) 显示控制方法、装置、电子设备及介质
CN106446660A (zh) 提供验证码的方法、系统及终端设备
KR101188016B1 (ko) 진동을 이용한 패스워드 입력 방법
US10263972B1 (en) Authenticating by labeling
CN104112097B (zh) 一种信息处理方法及电子设备
US20220058280A1 (en) Device and method to control access to protected functionality of applications
Mitchell et al. Cashtags: Protecting the input and display of sensitive data
JP6493973B2 (ja) 文字列入力方法及びプログラム
Malisa Security of User Interfaces: Attacks and Countermeasures
CN111125742A (zh) 文件管理方法、智能终端以及具有存储功能的装置
US20240256702A1 (en) Encryption orchestration of sensitive information
TWI659337B (zh) 顯示動態虛擬鍵盤之方法及其電腦程式產品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant