CN103745174B - 一种安全键盘的工作方法 - Google Patents
一种安全键盘的工作方法 Download PDFInfo
- Publication number
- CN103745174B CN103745174B CN201310743214.3A CN201310743214A CN103745174B CN 103745174 B CN103745174 B CN 103745174B CN 201310743214 A CN201310743214 A CN 201310743214A CN 103745174 B CN103745174 B CN 103745174B
- Authority
- CN
- China
- Prior art keywords
- key
- button
- keyboard
- character
- keyboard control
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/83—Protecting input, output or interconnection devices input devices, e.g. keyboards, mice or controllers thereof
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Input From Keyboards Or The Like (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明涉及一种安全键盘的工作方法,属于信息安全领域。本发明提供的方法具体为,密码框控件判断接收到的数据的类型,如果是第一触屏事件通知,则设置键盘控件状态标识,并将其作为绘制键盘控件通知发送给键盘控件;如果是键值信息通知,则根据键值执行相应操作,并将执行结果保存至第一存储区;如果是获取信息通知,则获取第一存储区中的数据,并将其发送给上层应用;键盘控件接收到事件通知时,判断事件通知类型,如果是绘制键盘控件事件通知,则根据键盘控件状态标识显示或隐藏键盘控件;如果是第二触屏事件通知,则根据键值类型执行相应操作;如果是切换屏幕方向事件通知,则重绘键盘控件。
Description
技术领域
本发明涉及信息安全领域,特别涉及一种安全键盘的工作方法。
背景技术
随着电子商务的兴起,网络安全越来越受到关注,在现有技术中,人们常使用软键盘输入数据来提高网络交易的安全性,软键盘是显示在屏幕上的由软件控制的一种虚拟键盘,用户可以用鼠标点击软键盘上的按键进行数据输入。
本发明人发现,现有技术存在以下缺陷,用户在软键盘上输入数据时,由于软键盘上的按键位置是不变的,所以黑客可以通过捕获鼠标的轨迹方式盗取输入数据。
发明内容
为解决现有技术中的缺陷,本发明提供一种安全键盘的工作方法,包括,
上层应用初始化密码框控件、初始化键盘控件,清空第一存储区、将切换屏幕方向标识复位、将键盘控件状态标识复位;
步骤S1:所述密码框控件等待接收数据;
步骤S2:所述密码框控件判断接收到的数据的类型,如果是第一触屏事件通知,则执行步骤S3;如果是键值信息通知,则执行步骤S4;如果是获取信息通知,则执行步骤S7;
步骤S3:所述密码框控件判断所述键盘控件状态标识是否复位,是则将所述键盘控件状态标识置位,并将所述键盘控件状态标识作为绘制键盘控件事件通知发送给所述键盘控件,返回步骤S1;否则将所述键盘控件状态标识复位,并将所述键盘控件状态标识作为绘制键盘控件事件通知发送给所述键盘控件,返回步骤S1;
步骤S4:所述密码框控件判断所述键值信息通知,如果是字符键,则执行步骤S5;如果是删除键,则执行步骤S6;
步骤S5:所述密码框控件获取所述第一存储区中的数据,并对获取到的数据进行解密,得到第一明文,从所述键值信息通知中获取密文,对所述密文进行解密,得到第二明文,将所述第一明文和所述第二明文顺序拼接,对拼接结果进行加密,得到第一加密结果,用所述第一加密结果更新所述第一存储区中的数据,返回步骤S1;
步骤S6:所述密码框控件获取所述第一存储区中的数据,并对获取到的数据进行解密得到明文,将所述明文中的最后一个字符删除得到新的明文,对所述新的明文进行加密,得到第二加密结果,用所述第二加密结果更新所述第一存储区中的数据,返回步骤S1;
步骤S7:所述密码框控件获取所述第一存储区中的数据,并对获取到的数据进行解密得到待发送信息,并所述待发送信息发送给所述上层应用,清空所述第一存储区,返回步骤S1;
步骤W1:所述键盘控件等待接收事件通知;
步骤W2:所述键盘控件判断接收到的事件通知类型,如果是绘制键盘控件事件通知,则执行步骤W3;如果是第二触屏事件通知,则执行步骤W4;如果是切换屏幕方向事件通知,则根据所述切换屏幕方向标识绘制按键背景图,在所述按键背景图上绘制字符,返回步骤W1;
步骤W3:所述键盘控件从所述绘制键盘事件通知中获取键盘控件状态标识,判断所述键盘控件状态标识是否置位,是则根据所述切换屏幕方向标识绘制按键背景图,在所述按键背景图上绘制字符,返回步骤W1;否则隐藏所述键盘控件,返回步骤W1;
步骤W4:所述键盘控件根据接收到的第二触屏事件通知获取键值,判断所述键值的类型,如果是字符键,则对所述键值进行加密得到密文,将所述密文和字符键信息作为键值信息通知发送给所述密码框控件,在所述按键背景图上绘制字符,返回步骤W1;如果是删除键,则将删除键信息作为所述键值信息通知发送给所述密码框控件,在所述按键背景图上绘制字符,返回步骤W1。
所述初始化,还包括将分屏标识复位;
所述步骤W3中所述根据所述切换屏幕方向标识绘制按键背景图,在所述按键背景图上绘制字符,具体为,
步骤Z1,根据所述切换屏幕方向标识判断屏幕方向,如果是横屏,则执行步骤Z2;如果是竖屏,则执行步骤Z3;
步骤Z2:获取屏幕的高度,将其作为按键面板的宽度,根据所述按键面板的宽度和按键属性信息计算按键面板的高度,执行步骤Z4;
步骤Z3:将所述分屏标识复位,获取屏幕的宽度,将其作为按键面板的宽度,根据所述按键面板的宽度和按键属性信息计算按键面板的高度,执行步骤Z4;
步骤Z4:调用绘制背景图函数根据所述按键面板的高度和所述按键面板的宽度绘制按键面板背景图,在所述按键面板背景图上绘制按键背景图,执行步骤Z5;
步骤Z5:调用绘制字符函数在所述按键背景图上绘制字符,显示键盘控件。
所述初始化还包括,将按键状态标识置为小写标识;所述在所述按键背景图上绘制字符,具体为,
步骤q1:初始化字符容器;
步骤q2:创建一个按键信息对象;
步骤q3:从所属字符容器中随机获取一个待绘制的字符作为当前键值,计算当前键值对应的按键的坐标、按键的绘制区域;
步骤q4:调用绘制背景函数,根据所述按键的坐标和所述按键的绘制区域绘制当前键值对应的按键背景图,调用绘制字符函数绘制当前键值;
步骤q5:将所述当前键值、所述按键的坐标、所述按键的绘制区域作为按键信息对象,将所述按键信息对象保存至所述按键信息对象容器中,删除所述字符容器中的所述待绘制的字符;
步骤q6:判断所述字符容器中是否存在待绘制的字符,是则返回步骤q2;否则结束操作;
所述初始化字符容器具体为,根据当前选择的按键的类型初始化字符容器,如果当前选择的按键为字母键时,判断所述按键状态标识,如果是小写标识,则将所述字符容器中存储小写字母;如果是锁定大写标识,则将所述字符容器中存储大写字母。
所述步骤W4中所述根据接收到的第二触屏事件通知获取键值,具体为,
所述键盘控件根据所述第二触屏事件通知获取触摸点坐标,遍历所述按键信息对象容器中的按键信息对象,获取与所述触摸点坐标匹配的按键信息对象,根据所述按键信息对象获取键值。
所述步骤W4中所述键值的类型还包括退出键;
如果是退出键将退出键信息作为所述键值信息通知发送给所述密码框控件,结束;
所述步骤S4中还包括,退出键;
如果是退出键,则将所述键盘控件状态标识复位,并将所述键盘控件状态标识作为绘制键盘控件事件通知发送给键盘控件,清空所述第一存储区,返回步骤S1。
所述步骤W4中所述键值的类型还包括分屏键;
如果是分屏键,则执行步骤X1;
步骤X1:判断所述切换屏幕方向标识,如果是横屏,则执行步骤X2;如果是竖屏,则返回步骤W1;
步骤X2:判断所述分屏标识是否置位,是则执行步骤X3;否则执行步骤X6;
步骤X3:获取屏幕的高度,将其作为按键面板的宽度,根据当前选择的按键的类型获取按键属性信息,根据所述按键面板的宽度和所述按键属性信息计算按键面板的高度,执行步骤X4;
步骤X4:调用绘制背景函数,根据所述按键面板的宽度和所述按键面板的高度绘制按键面板背景图,根据所述按键属性信息在按键面板背景图上绘制按键背景图;
步骤X5:调用绘制字符函数,根据所述按键属性信息在按键背景图上绘制字符,将所述分屏标识复位,返回步骤W1;
步骤X6:获取屏幕的高度,根据所述屏幕的高度计算分键盘的宽度,根据当前选择的按键的类型获取按键属性信息,根据所述分键盘的宽度和所述按键属性信息计算分键盘的高度,执行步骤X7;
步骤X7:调用绘制背景函数,根据所述分键盘的宽度和所述分键盘的高度绘制第一分键盘的按键面板背景图和第二分键盘的按键面板背景图,根据所述按键属性信息在所述第一分键盘的按键面板背景图上绘制按键背景图,在所述第二分键盘的按键面板背景图上绘制按键背景图;
步骤X8:调用绘制字符函数在所述第一分键盘的按键背景图上绘制字符,在所述第二分键盘的按键背景图上绘制字符,将所述分屏标识置位,返回步骤W1。
所述按键属性信息包括,按键总数、按键高度、按键宽度。
所述根据所述按键面板的宽度和所述按键属性信息计算按键面板的高度,具体为,
根据所述按键面板的宽度和所述按键宽度计算每行排列的按键的个数,根据所述按键总数和所述每行排列的按键的个数计算按键排列的行数,根据所述行数和所述按键高度计算按键面板的高度。
所述初始化,还包括初始化按键计数值、按键状态标识,清空第二存储区;
所述步骤W4中所述键值的类型还包括上档键;如果是上档键,则执行步骤C1;
步骤C1:判断所述按键状态标识是否为锁定大写标识,是则将所述按键状态标识置为小写标识,调用绘制字符函数在按键背景图上绘制字符,返回步骤W1;否则执行步骤C2;
步骤C2:更新所述按键计数值,根据触摸事件通知判断按键从被按下到弹起之间的时间间隔是否大于第一预设时间,是则进入支持多点触摸模式,返回步骤W1;否则执行步骤C3;
步骤C3:将所述按键状态标识置为锁定大写标识,调用绘制字符函数在按键背景图上绘制字符,返回步骤W1。
所述步骤S5具体为,判断所述第一存储区是否为空,是则从所述键值信息通知中获取密文,将所述密文保存至所述第一存储区中,返回步骤S1;否则获取所述第一存储区中的数据,并对获取到的数据进行解密,得到第一明文,从所述键值信息通知中获取密文,对所述密文进行解密,得到第二明文,将所述第一明文和所述第二明文顺序拼接,对拼接结果进行加密,得到第一加密结果,用所述第一加密结果更新所述第一存储区中的数据,返回步骤S1。
所述步骤S6中所述获取所述第一存储区中的数据具体为,判断所述第一存储区是否为空,是则提示不存在要删除的数据,返回步骤S1;否则获取所述第一存储区中的数据。
所述步骤S7具体为,判断所述第一存储区是否为空,是则提示不存在要发送的数据,返回步骤S1;否则获取所述第一存储区中的数据并对其进行解密,将解密后的数据作为待发送信息,将所述待发送信息发送给上层应用,清空所述第一存储区,结束。
本发明的有益效果为,采用本发明提供的方法,每次触发键盘控件时,键盘控件上的按键位置都是随机分布的,达到了防止黑客捕获鼠标轨迹盗取输入数据的目的;并且键盘控件调用加密函数对输入的数据进行加密,实现密文传输,无法通过反编译密文获取密码,提高了输入数据的安全性。
附图说明
图1-1为本发明实施例1提供的一种上层应用工作的方法流程图;
图1-2为本发明实施例1提供的一种密码框触屏事件处理函数的工作方法流程图;
图2为本发明实施例1提供的一种绘制键盘控件的方法流程图;
图3为本发明实施例1提供的一种绘制字符按键的方法流程图;
图4-1、4-2、4-3为本发明实施例1提供的一种键盘触屏事件处理函数的工作方法流程图;
图5为本发明实施例1提供的一种密码框控件处理键值信息通知的方法;
图6为本发明实施例1提供的一种切换屏幕方向事件处理函数的工作方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本发明实施例提供的技术方案应用于Android系统中,涉及到键盘控件、密码框控件、键盘触屏事件处理函数、密码框触屏事件处理函数、切换屏幕方向事件处理函数、键盘子函数以及JNI(Java Native Interface,Java本地调用)中定义的加密函数和解密函数。
如图1-1所示,上层应用进行如下操作包括,
步骤101、上层应用初始化密码框控件,初始化键盘控件,清空第一存储区,清空第二存储区;
步骤102、上层应用在密码框控件中注册触屏事件;
本实施例中,在密码框控件中注册触屏事件,当密码框控件发生触屏事件时,密码框控件通过广播的方式向密码框触屏事件处理函数发送第一触屏事件通知。
步骤103、上层应用在键盘控件中注册触屏事件和切换屏幕方向事件;
本实施例中,在键盘控件中注册触屏事件,当键盘控件发生触屏事件时,键盘控件通过广播的方式向键盘触屏事件处理函数发送第一触屏事件通知;
在键盘控件中注册切换屏幕方向事件,当键盘控件发生切换屏幕方向事件时,键盘控件通过广播的方式向切换屏幕方向事件处理函数发送切换屏幕方向事件通知。
步骤104、上层应用初始化按键计数值、按键状态标识、切换屏幕方向标识、键盘控件状态标识、分屏标识,初始化密钥、算法;
优选的,按键计数值初始值为0,将按键状态标识置为小写标识,将键盘控件状态标识复位、将切换屏幕方向标识复位,将分屏标识复位,将密钥初始值设为长度为24位的随机数,将算法设为DES算法。算法还可以为3DES、AES等算法,切换屏幕方向标识复位时为竖屏状态。
如图1-2所示,密码框触屏事件处理函数的工作流程,具体包括:
步骤A1:密码框触屏事件处理函数等待接收第一触屏事件通知;
步骤A2:当密码框触屏事件处理函数接收到第一触屏事件通知时,判断键盘控件状态标识是否复位,是则执行步骤A3;否则执行步骤A4;
步骤A3:密码框触屏事件处理函数将键盘控件状态标识置位,并将键盘控件状态标识作为绘制键盘控件事件通知发送给键盘子函数,返回步骤A1;
本实施例中,当键盘子函数接收到绘制键盘控件事件通知时,从绘制键盘控件事件通知中获取键盘控件状态标识,若键盘控件状态标识置位,则键盘子函数根据切换屏幕方向标识绘制键盘控件,在按键背景图上绘制字符,等待接收绘制键盘控件事件通知。
步骤A4:密码框触屏事件处理函数将键盘控件状态标识复位,并将键盘控件状态标识作为绘制键盘控件事件通知发送给键盘子函数,返回步骤A1。
本实施例中,当键盘子函数接收到绘制键盘控件事件通知时,从绘制键盘控件事件通知中获取键盘控件状态标识,若键盘控件状态标识复位,则键盘子函数隐藏键盘控件,等待接收绘制键盘控件事件通知。
如图2所示,所述绘制键盘控件,具体包括:
步骤Z1:键盘子函数根据切换屏幕方向标识判断屏幕方向,如果是横屏则执行步骤Z2;如果是竖屏则执行步骤Z3;
步骤Z2:键盘子函数获取屏幕的高度,将其作为按键面板的宽度,根据按键面板的宽度、按键总数、按键高度和按键宽度计算按键面板的高度,执行步骤Z4;
本实施例中,按键总数、按键高度和按键宽度总称为按键属性信息;按键总数初始值为30个、按键高度初始值为32*32像素、按键宽度初始值为32*32像素。
步骤Z3:键盘子函数将分屏标识复位,获取屏幕的宽度,将其作为按键面板的宽度,根据按键面板的宽度、按键总数、按键高度和按键宽度计算按键面板的高度,执行步骤Z4;
步骤Z4:键盘子函数调用绘制背景图函数根据按键面板的高度和按键面板的宽度绘制按键面板背景图,在按键面板背景图上绘制按键背景图,执行步骤Z5;
步骤Z5:键盘子函数调用绘制字符函数在按键背景图上绘制字符,显示键盘控件。
如图3所示,所述绘制字符的方法,具体包括:
步骤q1:键盘子函数初始化字符容器;
所述初始化字符容器具体为,根据当前选择的按键的类型初始化字符容器,如果当前选择的按键为字母键时,判断所述按键状态标识,如果是小写标识,则将所述字符容器中存储小写字母;如果是锁定大写标识,则将所述字符容器中存储大写字母。当第一次绘制字符时,默认选择的按键为小写字母。
步骤q2:键盘子函数创建一个按键信息对象;
本实施例中,每个字母对应一个按键信息对象,各个字母对应的按键信息对象互不相同。
步骤q3:键盘子函数从所属字符容器中随机获取一个待绘制的字符作为当前键值,计算当前键值对应的按键的坐标、绘制区域;
步骤q4:键盘子函数调用绘制背景函数,根据按键的坐标和绘制区域绘制当前键值对应的按键背景图,调用绘制字符函数绘制当前键值;
步骤q5:键盘子函数将当前键值、按键的坐标、按键的绘制区域保存为按键信息对象,将按键信息对象保存至按键信息对象容器中,删除字符容器中的待绘制的字符;
步骤q6:键盘子函数判断字符容器中是否存在待绘制的字符,是则返回步骤q2;否则结束。
如图4-1、图4-2和图4-3所示,键盘触屏事件处理函数的工作方法具体包括,
步骤201:键盘触屏事件处理函数等待接收第二触屏事件通知;
步骤202:当键盘触屏事件处理函数接收到第二触屏事件通知时,根据第二触屏事件通知获取键值,判断键值类型,如果是字符键,则执行步骤203;如果是退出键,则执行步骤205;如果是切换系统输入法键,则执行步骤206;如果是删除键,则执行步骤207;如果是分屏键,则执行步骤209;如果是上档键,则执行步骤217;
本实施例中,判断键值类型的方法具体为,键盘触屏事件处理函数根据第二触屏事件通知获取触摸点坐标,遍历按键信息对象容器中的按键信息对象,从中获取与触摸点坐标匹配的按键信息对象,根据按键信息对象获取键值;
步骤203:键盘触屏事件处理函数调用加密函数采用算法和密钥对键值进行加密,得到密文;
本实施例中,密钥可以为预设密钥,还可以为,按照预设方式更新预设密钥,调用加密函数采用算法和更新后的密钥对键值进行加密。
例如,键盘触屏事件处理函数根据第二触屏事件通知确定被触摸的按键为数字键9,键盘触屏事件处理函数调用Safe_Encrpt(”9”,UKEY_KEYBOARD_KEYTMP);对9进行加密得到9的密文为dwjfFLLIOYA。
步骤204:键盘触屏事件处理函数将加密结果和字符键信息作为键值信息通知发送给密码框控件,执行步骤208;
本步骤还可以为,键盘触屏事件处理函数将加密结果和字符键信息作为键值信息通知发送给密码框控件,然后返回步骤201;
步骤205:键盘触屏事件处理函数将退出键信息作为键值信息通知发送给密码框控件,结束操作;
步骤206:键盘触屏事件处理函数将切换系统输入法键信息作为键值信息通知发送给密码框控件,结束操作;
步骤207:键盘触屏事件处理函数将删除键信息作为键值信息通知发送给密码框控件,执行步骤208;
本步骤还可以为,键盘触屏事件处理函数将删除键信息作为键值信息通知发送给密码框控件,然后返回步骤201;
步骤208:键盘触屏事件处理函数根据当前选择的按键的类型调用绘制字符函数在按键背景图上绘制字符,显示键盘控件,返回步骤201。
步骤209:键盘触屏事件处理函数判断切换屏幕方向标识,如果是横屏则执行步骤210;如果是竖屏则返回步骤201;
步骤210:键盘触屏事件处理函数判断分屏标识是否置位,是则执行步骤211;否则执行步骤214;
步骤211:键盘触屏事件处理函数获取屏幕的高度,将屏幕的高度作为按键面板的宽度,根据当前选择的按键的类型获取按键总数、按键宽度、按键高度,执行步骤212;
优选的,按键高度和按键宽度相等。
步骤212:键盘触屏事件处理函数根据按键面板的宽度、按键总数、按键高度、按键宽度计算按键面板的高度,调用绘制背景函数,根据按键面板的宽度和按键面板的高度绘制按键面板背景图,根据按键高度和按键宽度在按键面板背景图上绘制按键背景图;
本实施例中,根据按键面板的宽度和按键宽度计算每行排列的按键的个数,根据按键总数和每行排列的按键的个数计算按键排列的行数,根据行数和按键高度计算按键面板的高度。
优选的,将按键面板的宽度与按键宽度做除法运算,得到的结果作为每行排列的按键的个数,将按键总数与每行排列的按键的个数做除法运算,得到的结果作为按键排列的行数,当按键总数与每行排列的按键的个数做除法运算不能够整除时,将按键总数与每行排列的按键的个数做除法运算的结果加1,作为按键排列的行数,将行数与按键高度做乘法运算,将得到的结果作为按键面板的高度。
步骤213:键盘触屏事件处理函数调用绘制字符函数,根据所述按键属性信息在按键背景图上绘制字符,将分屏标识复位,返回步骤201;
本实施例中,绘制字符的方法与步骤q1至步骤q6相同,此处不再赘述。
步骤214:键盘触屏事件处理函数获取屏幕的高度,根据屏幕的高度计算分键盘的宽度,根据当前选择的按键的类型获取按键总数、按键宽度、按键高度,根据分键盘的宽度、按键总数、按键宽度、按键高度计算分键盘的高度,执行步骤215;
本实施例中,获取屏幕的高度,将屏幕的高度与第一预设值做乘法运算,得到的结果作为分键盘的按键面板宽度;根据按键总数、按键宽度、按键高度计算分键盘的高度的方法与步骤212相同,不再赘述。
优选的,第一预设值为1/3。
步骤215:键盘触屏事件处理函数调用绘制背景函数根据分键盘的宽度和分键盘的高度绘制两个分键盘的按键面板背景图,根据按键高度和按键宽度分别在两个分键盘的按键面板背景图上绘制按键背景图;
本步骤操作方法与步骤211相同,不再赘述。
步骤216:键盘触屏事件处理函数调用绘制字符函数分别在两个分键盘的按键背景图上绘制字符,将分屏标识置位,返回步骤201;
本实施例中,绘制字符的方法与步骤q1至步骤q6相同,不再赘述。
步骤217:键盘触屏事件处理函数判断按键状态标识是否为锁定大写标识,是则执行步骤218;否则执行步骤219;
步骤218:键盘触屏事件处理函数将按键状态标识置为小写标识,调用绘制字符函数在按键背景图上绘制字符,返回步骤201;
本实施例中,绘制字符的方法与步骤q1至步骤q6相同,其中初始化字符容器时,字符容器中存放的字母均为小写字母。
步骤219:键盘触屏事件处理函数更新按键计数值,执行步骤220;
步骤220:键盘触屏事件处理函数根据触摸事件通知判断按键从被按下到弹起之间的时间间隔是否大于第一预设时间,是则执行步骤221;否则执行步骤222;
优选的,第一预设时间为1s;
步骤221:键盘触屏事件处理函数进入支持多点触摸模式,返回步骤201;
本实施例中,多点触摸模式具体为,支持同时按下第二个字符按键,并获得第二个字符的大写字符。
步骤222:键盘触屏事件处理函数判断按键计数值是否大于第二预设值,是则执行步骤224;否则执行步骤223;
步骤223:键盘触屏事件处理函数获取当前系统时间,将当前系统时间保存至第二存储区中,返回步骤201;
步骤224:获取当前系统时间,获取第二存储区中存储的时间,执行步骤225;
步骤225:判断当前系统时间与第二存储区中存储的时间之间的时间间隔是否大于第二预设时间,是则执行步骤227;否则执行步骤226;
优选的,第二预设时间为500ms;
步骤226:将按键状态标识置为锁定大写标识,调用绘制字符函数在按键背景图上绘制字符,进入锁定大写模式,执行步骤201;
本实施例中,绘制字符的方法与步骤q1至步骤q6相同,此处不再赘述,其中步骤q1中初始化字符容器时,字符容器中存放的为大写字母。锁定大写模式具体为,后续输入的字母全部为大写字母;
步骤227:判断按键状态标识,如果是大写标识则执行步骤228;如果是小写标识则执行步骤229;
步骤228:将按键状态标识置为小写标识,调用绘制字符函数在当前按键背景图上绘制字符,进入小写模式,返回步骤201;
本实施例中,绘制字符的方法与步骤q1至步骤q6相同,此处不再赘述,其中步骤q1中初始化字符容器时,字符容器中存放的为小写字母。小写模式具体为,后续输入的字母全部为小写字母。
步骤229:将按键状态标识置为大写标识,调用绘制字符函数在当前按键背景图上绘制字符,进入大写模式,返回步骤201;
本实施例中,绘制字符的方法与步骤q1至步骤q6相同,此处不再赘述,其中步骤q1中初始化字符容器时,字符容器中存放的为大写字母。大写模式具体为,后续输入的字符中,当最先输入的字符为字母键时,输入的为大写字母,后续输入的字母均为小写字母。
如图5所示,当密码框控件接收到键值信息通知时,密码框控件对键值信息通知的处理方法,具体包括:
步骤301:密码框控件等待接收键值信息通知;
步骤302:密码框控件判断键值信息通知,如果是退出键,则执行步骤303;如果是切换系统输入法键,则执行步骤304;如果是删除键,则执行步骤305;如果是字符键,则执行步骤309;
本实施例中,键值信息通知中包含键值类型信息。
步骤303:密码框控件将键盘控件状态标识复位,并将键盘控件状态标识作为绘制键盘控件事件通知发送给键盘子函数,清空第一存储区,结束;
本实施例中,当键盘子函数接收到绘制键盘控件事件通知时,从绘制键盘控件事件通知中获取键盘控件状态标识,若键盘控件状态标识为复位时,则键盘子函数隐藏键盘控件,等待接收绘制键盘控件事件通知。
步骤304:密码框控件将键盘控件状态标识复位,并将键盘控件标识作为绘制键盘控件事件通知发送给键盘子函数,显示系统键盘控件进行相应处理,返回步骤301;
本实施例中,当键盘子函数接收到绘制键盘控件事件通知时,从绘制键盘控件事件通知中获取键盘控件状态标识,若键盘控件状态标识为复位时,则键盘子函数隐藏键盘控件,等待接收绘制键盘控件事件通知。密码框控件调用系统键盘函数,显示系统键盘控件。
步骤305:密码框控件判断第一存储区是否为空,是则执行步骤306;否则执行步骤307;
本实施例中,第一存储区用于密码框控件存储对接收到的所有字符键进行加密,得到的密文;
步骤306:密码框控件提示不存在要删除的数据,返回步骤301;
步骤307:密码框控件获取第一存储区中的数据,调用解密函数对第一存储区中的数据进行解密,得到明文,删除明文的最后一个字符作为新的明文;
例如,密码框控件从第一存储区中获取到的数据为qLqNQ37ejek,调用Safe_Decrpt(“qLqNQ37ejek”,UKEY_KEYBOARD_KEYTMP);对qLqNQ37ejek进行加密得到qLqNQ37ejek的明文为98,删除98的最后一个字符作为新的明文,即新的明文为9;
步骤308:密码框控件调用加密函数对新的明文进行加密,得到第二加密结果,用得到的第二加密结果更新第一存储区中的数据,返回步骤301;
例如,密码框控件调用Safe_Encrpt(“9”,UKEY_KEYBOARD_KEYTMP);对9进行加密,得到9的加密结果为dwjfFLLIOYA作为第二加密结果,用dwjfFLLIOYA更新第一存储区中的数据;
步骤309:密码框控件获取第一存储区中的数据,调用解密函数对第一存储区中的数据进行解密,得到第一明文;
具体地,判断第一存储区是否为空,是则从键值信息通知中获取密文,将密文保存至第一存储区中,返回步骤301;否则获取第一存储区中的数据,并对获取到的数据进行解密,得到第一明文。
例如,从第一存储区中获取到的数据为dwjfFLLIOYA,密码框控件调用Safe_Decrpt(“dwjfFLLIOYA”,UKEY_KEYBOARD_KEYTMP);对dwjfFLLIOYA进行解密,得到dwjfFLLIOYA的解密结果为9,9即为第一明文;
步骤310:密码框控件从所述键值信息通知中获取密文,调用解密函数对所述密文进行解密,得到第二明文;
例如,接收到的密文为xBiQW4UbYf0,密码框控件调用Safe_Decrpt(“xBiQW4UbYf0”,UKEY_KEYBOARD_KEYTMP);对xBiQW4UbYf0进行解密,得到xBiQW4UbYf0的解密结果为8,即8为第二明文;
本步骤与步骤309的执行顺序可以互换。
步骤311:密码框控件将第一明文和第二明文顺序拼接,调用加密函数对拼接结果进行加密,用得到的第一加密结果更新第一存储区中的数据,返回步骤301;
例如,将第一明文9和第二明文8顺序拼接得到’98’,密码框控件调用Safe_Encrpt(“98”,UKEY_KEYBOARD_KEYTMP);对98进行加密得到98的密文为qLqNQ37ejek,用qLqNQ37ejek更新第一存储区中的数据。
当密码框控件接收到获取信息通知时,则判断第一存储区是否为空,是则密码框控件提示不存在要发送的数据,返回步骤301;否则,密码框控件获取第一存储区中的数据,调用解密函数对获取到的数据进行解密,将解密结果发送给上层应用,清空第一存储区,结束。
如图6所示,切换屏幕方向事件处理函数的工作方法,具体包括,
步骤401:切换屏幕方向事件处理函数等待接收切换屏幕方向事件通知;
步骤402:当切换屏幕方向事件处理函数接收切换屏幕方向事件通知时,根据切换屏幕方向标识判断屏幕方向,如果是横屏则执行步骤403;如果是竖屏则执行步骤404;
步骤403:切换屏幕方向事件处理函数获取屏幕的高度,将其作为按键面板的宽度,根据当前选中的按键的类型从字符容器中获取按键总数、按键宽度、按键高度,根据按键面板的宽度、按键总数、按键宽度和按键高度计算按键面板的高度,执行步骤405;
步骤404:切换屏幕方向事件处理函数将分屏标识复位,获取屏幕的宽度,将其作为按键面板的宽度,根据当前选择的按键的类型从字符容器中获取按键总数、按键宽度、按键高度,根据按键面板的宽度、按键总数、按键宽度、按键高度计算按键面板的高度,执行步骤405;
步骤405:切换屏幕方向事件处理函数调用绘制背景函数根据按键面板的高度和宽度绘制按键面板背景图,根据按键高度和按键宽度在按键面板背景图上绘制按键背景图,执行步骤406;
步骤406:切换屏幕方向事件处理函数调用绘制字符函数在按键背景图上绘制字符,返回步骤401。
本实施例中,绘制字符的方法与步骤q1至步骤q6相同,不再赘述。
实施例2
本发明实施例提供一种安全键盘的工作方法,包括,
上层应用初始化密码框控件、初始化键盘控件,清空第一存储区、第二存储区,在密码框控件中注册触屏事件,在键盘控件中注册触屏事件和切换屏幕方向事件,初始化按键计数值、按键状态标识、切换屏幕方向标识、键盘控件状态标识、分屏标识,初始化密钥、算法。
本实施例中,在密码框控件中注册触屏事件,当密码框控件发生触屏事件时,密码框控件通过广播的方式向密码框触屏事件处理函数发送第一触屏事件通知;在键盘控件中注册触屏事件,当键盘控件发生触屏事件时,键盘控件通过广播的方式向键盘触屏事件处理函数发送第二触屏事件通知;在键盘控件中注册切换屏幕方向事件,当键盘控件发生切换屏幕方向事件时,键盘控件通过广播的方式向切换屏幕方向事件处理函数发送切换屏幕方向事件通知;优选的,按键计数值初始值为0,将按键状态标识置为小写标识,将键盘控件状态标识复位、将切换屏幕方向标识复位,将分屏标识复位,将密钥初始值设为长度为24位的随机数,将算法设为DES算法。算法还可以为3DES、AES等算法,切换屏幕方向标识复位时为竖屏状态。
密码框控件的工作方法,包括,
步骤501:密码框控件等待接收数据;
步骤502:密码框控件判断接收到的数据的类型,如果是第一触屏事件通知,则执行步骤503;如果是键值信息通知,则执行步骤504;如果是获取信息通知,则执行步骤514;
步骤503:密码框控件判断键盘控件状态标识是否复位,是则将键盘控件状态标识置位,并将键盘控件状态标识作为绘制键盘控件事件通知发送给键盘控件,返回步骤501;否则将键盘控件状态标识复位,并将键盘控件状态标识作为绘制键盘控件事件通知发送给键盘控件,返回步骤501;
步骤504:密码框控件判断键值信息通知,如果是退出键,则执行步骤505;如果是切换系统输入法键,则执行步骤506;如果是删除键,则执行步骤507;如果是字符键,则执行步骤511;
本实施例中,键值信息通知中包含键值类型信息。
步骤505:密码框控件将键盘控件状态标识复位,并将键盘控件状态标识作为绘制键盘控件事件通知发送给键盘控件,清空第一存储区,返回步骤501;
本实施例中,当键盘控件接收到绘制键盘控件事件通知时,从绘制键盘控件事件通知中获取键盘控件状态标识,若键盘控件状态标识为复位时,则隐藏键盘控件。
步骤506:密码框控件将键盘控件状态标识复位,并将键盘控件标识作为绘制键盘控件事件通知发送给键盘控件,显示系统键盘控件进行相应处理,返回步骤501;
步骤507:密码框控件判断第一存储区是否为空,是则执行步骤508;否则执行步骤509;
本实施例中,第一存储区用于密码框控件存储对接收到的所有字符键进行加密,得到的密文;
步骤508:密码框控件提示不存在要删除的数据,返回步骤501;
步骤509:密码框控件获取第一存储区中的数据,调用解密函数对第一存储区中的数据进行解密,得到明文,删除明文的最后一个字符作为新的明文;
步骤510:密码框控件调用加密函数对新的明文进行加密,得到第二加密结果,用得到的第二加密结果更新第一存储区中的数据,返回步骤501;
步骤511:密码框控件获取第一存储区中的数据,调用解密函数对第一存储区中的数据进行解密,得到第一明文;
本步骤的操作方法与步骤309相同不再赘述。
步骤512:密码框控件从键值信息通知中获取密文,调用解密函数对所述密文进行解密,得到第二明文;
本步骤与步骤511的执行顺序可以互换。
步骤513:密码框控件将第一明文和第二明文顺序拼接,调用加密函数对拼接结果进行加密,用得到的第一加密结果更新第一存储区中的数据,返回步骤501;
步骤514:密码框控件判断第一存储区是否为空,是则执行步骤515;否则执行步骤516;
步骤515:密码框控件提示不存在要发送的数据,返回步骤501;
步骤516:密码框控件获取第一存储区中的数据,调用解密函数对获取到的数据进行解密,将解密结果作为待发送信息发送给上层应用,清空第一存储区,返回步骤501。
键盘控件的工作方法,包括,
步骤601:键盘控件等待接收事件通知;
步骤602:键盘控件判断接收到的事件通知,如果是绘制键盘控件事件通知,则执行步骤603;如果是第二触屏事件通知,则执行步骤605;如果是切换屏幕方向事件通知,则根据所述切换屏幕方向标识绘制按键背景图,在所述按键背景图上绘制字符,返回步骤W1;
步骤603:键盘控件从绘制键盘事件通知中获取键盘控件状态标识,判断所述键盘控件状态标识是否置位,是则执行步骤604;否则隐藏键盘控件,返回步骤601;
步骤604:键盘控件根据切换屏幕方向标识绘制按键背景图,在按键背景图上绘制字符,返回步骤601;
步骤605:键盘控件根据第二触屏事件通知获取键值,判断键值类型,如果是字符键,则执行步骤606;如果是退出键,则执行步骤608;如果是切换系统输入法键,则执行步骤609;如果是删除键,则执行步骤610;如果是分屏键,则执行步骤612;如果是上档键,则执行步骤620;
本实施例中,判断键值类型的方法与步骤202相同,不再赘述;
步骤606:键盘控件调用加密函数采用算法和密钥对键值进行加密,得到密文;
本实施例中,密钥可以为预设密钥,还可以为,按照预设方式更新预设密钥,调用加密函数采用算法和更新后的密钥对键值进行加密。
步骤607:键盘控件将加密结果和字符键信息作为键值信息通知发送给密码框控件,执行步骤611;
本步骤操作方法与步骤204相同,不再赘述。
步骤608:键盘控件将退出键信息作为键值信息通知发送给密码框控件,返回步骤601;
步骤609:键盘控件将切换系统输入法键信息作为键值信息通知发送给密码框控件,结束操作;
步骤610:键盘控件将删除键信息作为键值信息通知发送给密码框控件,执行步骤611;
本步骤的操作方法与步骤207相同,不再赘述。
步骤611:键盘控件根据当前选择的按键的类型调用绘制字符函数在按键背景图上绘制字符,显示键盘控件,返回步骤601;
步骤612:键盘控件判断切换屏幕方向标识,如果是横屏则执行步骤613;如果是竖屏则返回步骤601;
步骤613:键盘控件判断分屏标识是否置位,是则执行步骤613;否则执行步骤617;
步骤614:键盘控件获取屏幕的高度,将屏幕的高度作为按键面板的宽度,根据当前选择的按键的类型获取按键总数、按键宽度、按键高度,执行步骤615;
优选的,按键高度和按键宽度相等。
步骤615:键盘控件根据按键面板的宽度、按键总数、按键高度、按键宽度计算按键面板的高度,调用绘制背景函数,根据按键面板的宽度和按键面板的高度绘制按键面板背景图,根据按键高度和按键宽度在按键面板背景图上绘制按键背景图;
本步骤的操作方法与步骤212相同,不再赘述。
步骤616:键盘控件调用绘制字符函数,根据所述按键属性信息在按键背景图上绘制字符,将分屏标识复位,返回步骤601;
步骤617:键盘控件获取屏幕的高度,根据屏幕的高度计算分键盘的宽度,根据当前选择的按键的类型获取按键总数、按键宽度、按键高度,根据分键盘的宽度、按键总数、按键宽度、按键高度计算分键盘的高度,执行步骤618;
本步骤操作方法与步骤214相同,不再赘述。
步骤618:键盘控件调用绘制背景函数根据分键盘的宽度和分键盘的高度绘制两个分键盘的按键面板背景图,根据按键高度和按键宽度分别在两个分键盘的按键面板背景图上绘制按键背景图;
本步骤操作方法与步骤215相同,不再赘述。
步骤619:键盘控件调用绘制字符函数分别在两个分键盘的按键背景图上绘制字符,将分屏标识置位,返回步骤601;
步骤620:键盘控件判断按键状态标识是否为锁定大写标识,是则执行步骤621;否则执行步骤622;
步骤621:键盘控件将按键状态标识置为小写标识,调用绘制字符函数在按键背景图上绘制字符,返回步骤601;
步骤622:键盘控件更新按键计数值,执行步骤623;
步骤623:键盘控件根据触摸事件通知判断按键从被按下到弹起之间的时间间隔是否大于第一预设时间,是则执行步骤624;否则执行步骤625;
步骤624:键盘控件进入支持多点触摸模式,返回步骤601;
本步骤的操作方法与步骤221相同,不再赘述。
步骤625:键盘控件判断按键计数值是否大于第二预设值,是则执行步骤627;否则执行步骤626;
步骤626:键盘控件获取当前系统时间,将当前系统时间保存至第二存储区中,返回步骤601;
步骤627:键盘控件获取当前系统时间,获取第二存储区中存储的时间,执行步骤628;
步骤628:键盘控件判断当前系统时间与第二存储区中存储的时间之间的时间间隔是否大于第二预设时间,是则执行步骤630;否则执行步骤629;
优选的,第二预设时间为500ms;
步骤629:键盘控件将按键状态标识置为锁定大写标识,调用绘制字符函数在按键背景图上绘制字符,进入锁定大写模式,执行步骤601;
步骤630:键盘控件判断按键状态标识,如果是大写标识则执行步骤631;如果是小写标识则执行步骤632;
步骤631:键盘控件将按键状态标识置为小写标识,调用绘制字符函数在当前按键背景图上绘制字符,进入小写模式,返回步骤601;
步骤632:键盘控件将按键状态标识置为大写标识,调用绘制字符函数在当前按键背景图上绘制字符,进入大写模式,返回步骤601;
步骤633:键盘控件接收切换屏幕方向事件通知时,根据切换屏幕方向标识判断屏幕方向,如果是横屏则执行步骤634;如果是竖屏则执行步骤635;
步骤634:键盘控件获取屏幕的高度,将其作为按键面板的宽度,根据当前选中的按键的类型从字符容器中获取按键总数、按键宽度、按键高度,根据按键面板的宽度、按键总数、按键宽度和按键高度计算按键面板的高度,执行步骤636;
步骤635:键盘控件将分屏标识复位,获取屏幕的宽度,将其作为按键面板的宽度,根据当前选择的按键的类型从字符容器中获取按键总数、按键宽度、按键高度,根据按键面板的宽度、按键总数、按键宽度、按键高度计算按键面板的高度,执行步骤636;
步骤636:键盘控件调用绘制背景函数根据按键面板的高度和宽度绘制按键面板背景图,根据按键高度和按键宽度在按键面板背景图上绘制按键背景图,执行步骤637;
步骤637:键盘控件调用绘制字符函数在按键背景图上绘制字符,返回步骤601。
本实施例中,键盘控件根据切换屏幕方向标识绘制按键背景图的方法具体包括,
步骤V1,键盘控件根据切换屏幕方向标识判断屏幕方向,如果是横屏则执行步骤V2;如果是竖屏则执行步骤V3;
步骤V2:键盘控件取屏幕的高度,将其作为按键面板的宽度,根据按键面板的宽度、按键总数、按键高度和按键宽度计算按键面板的高度,执行步骤V4;
本实施例中,按键总数、按键高度和按键宽度总称为按键属性信息;按键总数初始值为30个、按键高度初始值为32*32像素、按键宽度初始值为32*32像素。
步骤V3:键盘控件将分屏标识复位,获取屏幕的宽度,将其作为按键面板的宽度,根据按键面板的宽度、按键总数、按键高度和按键宽度计算按键面板的高度,执行步骤V4;
步骤V4:键盘控件调用绘制背景图函数根据按键面板的高度和按键面板的宽度绘制按键面板背景图,在按键面板背景图上绘制按键背景图,执行步骤V5;
步骤V5:键盘控件调用绘制字符函数在按键背景图上绘制字符,显示键盘控件。
本实施例中,绘制字符的方法,具体包括:
步骤F1:键盘控件初始化字符容器;
所述初始化字符容器具体为,根据当前选择的按键的类型初始化字符容器,如果当前选择的按键为字母键时,判断所述按键状态标识,如果是小写标识,则将所述字符容器中存储小写字母;如果是锁定大写标识,则将所述字符容器中存储大写字母。当第一次绘制字符时,默认选择的按键为小写字母。
步骤F2:键盘控件创建一个按键信息对象;
本实施例中,每个字母对应一个按键信息对象,各个字母对应的按键信息对象互不相同。
步骤F3:键盘控件从所属字符容器中随机获取一个待绘制的字符作为当前键值,计算当前键值对应的按键的坐标、绘制区域;
步骤F4:键盘控件调用绘制背景函数,根据按键的坐标和绘制区域绘制当前键值对应的按键背景图,调用绘制字符函数绘制当前键值;
步骤F5:键盘控件将当前键值、按键的坐标、按键的绘制区域保存为按键信息对象,将按键信息对象保存至按键信息对象容器中,删除字符容器中的待绘制的字符;
步骤F6:键盘控件判断字符容器中是否存在待绘制的字符,是则返回步骤F2;否则结束操作。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (12)
1.一种安全键盘的工作方法,其特征在于,上层应用初始化密码框控件、初始化键盘控件,清空第一存储区、将切换屏幕方向标识复位、将键盘控件状态标识复位;
步骤S1:所述密码框控件等待接收数据;
步骤S2:所述密码框控件判断接收到的数据的类型,如果是第一触屏事件通知,则执行步骤S3;如果是键值信息通知,则执行步骤S4;如果是获取信息通知,则执行步骤S7;
步骤S3:所述密码框控件判断所述键盘控件状态标识是否复位,是则将所述键盘控件状态标识置位,并将所述键盘控件状态标识作为绘制键盘控件事件通知发送给所述键盘控件,返回步骤S1;否则将所述键盘控件状态标识复位,并将所述键盘控件状态标识作为绘制键盘控件事件通知发送给所述键盘控件,返回步骤S1;
步骤S4:所述密码框控件判断所述键值信息通知,如果是字符键,则执行步骤S5;如果是删除键,则执行步骤S6;
步骤S5:所述密码框控件获取所述第一存储区中的数据,并对获取到的数据进行解密,得到第一明文,从所述键值信息通知中获取密文,对所述密文进行解密,得到第二明文,将所述第一明文和所述第二明文顺序拼接,对拼接结果进行加密,得到第一加密结果,用所述第一加密结果更新所述第一存储区中的数据,返回步骤S1;
步骤S6:所述密码框控件获取所述第一存储区中的数据,并对获取到的数据进行解密得到明文,将所述明文中的最后一个字符删除得到新的明文,对所述新的明文进行加密,得到第二加密结果,用所述第二加密结果更新所述第一存储区中的数据,返回步骤S1;
步骤S7:所述密码框控件获取所述第一存储区中的数据,并对获取到的数据进行解密得到待发送信息,并所述待发送信息发送给所述上层应用,清空所述第一存储区,返回步骤S1;
步骤W1:所述键盘控件等待接收事件通知;
步骤W2:所述键盘控件判断接收到的事件通知类型,如果是绘制键盘控件事件通知,则执行步骤W3;如果是第二触屏事件通知,则执行步骤W4;如果是切换屏幕方向事件通知,则根据所述切换屏幕方向标识绘制按键背景图,在所述按键背景图上绘制字符,返回步骤W1;
步骤W3:所述键盘控件从所述绘制键盘事件通知中获取键盘控件状态标识,判断所述键盘控件状态标识是否置位,是则根据所述切换屏幕方向标识绘制按键背景图,在所述按键背景图上绘制字符,返回步骤W1;否则隐藏所述键盘控件,返回步骤W1;
步骤W4:所述键盘控件根据接收到的第二触屏事件通知获取键值,判断所述键值的类型,如果是字符键,则对所述键值进行加密得到密文,将所述密文和字符键信息作为键值信息通知发送给所述密码框控件,在所述按键背景图上绘制字符,返回步骤W1;如果是删除键,则将删除键信息作为所述键值信息通知发送给所述密码框控件,在所述按键背景图上绘制字符,返回步骤W1。
2.如权利要求1所述的方法,其特征在于,所述初始化,还包括将分屏标识复位;
所述步骤W3中所述根据所述切换屏幕方向标识绘制按键背景图,在所述按键背景图上绘制字符,具体为,
步骤Z1,根据所述切换屏幕方向标识判断屏幕方向,如果是横屏,则执行步骤Z2;如果是竖屏,则执行步骤Z3;
步骤Z2:获取屏幕的高度,将其作为按键面板的宽度,根据所述按键面板的宽度和按键属性信息计算按键面板的高度,执行步骤Z4;
步骤Z3:将所述分屏标识复位,获取屏幕的宽度,将其作为按键面板的宽度,根据所述按键面板的宽度和按键属性信息计算按键面板的高度,执行步骤Z4;
步骤Z4:调用绘制背景图函数根据所述按键面板的高度和所述按键面板的宽度绘制按键面板背景图,在所述按键面板背景图上绘制按键背景图,执行步骤Z5;
步骤Z5:调用绘制字符函数在所述按键背景图上绘制字符,显示键盘控件。
3.如权利要求2所述的方法,其特征在于,所述初始化还包括,将按键状态标识置为小写标识;所述在所述按键背景图上绘制字符,具体为,
步骤q1:初始化字符容器;
步骤q2:创建一个按键信息对象;
步骤q3:从所属字符容器中随机获取一个待绘制的字符作为当前键值,计算当前键值对应的按键的坐标、按键的绘制区域;
步骤q4:调用绘制背景函数,根据所述按键的坐标和所述按键的绘制区域绘制当前键值对应的按键背景图,调用绘制字符函数绘制当前键值;
步骤q5:将所述当前键值、所述按键的坐标、所述按键的绘制区域作为按键信息对象,将所述按键信息对象保存至所述按键信息对象容器中,删除所述字符容器中的所述待绘制的字符;
步骤q6:判断所述字符容器中是否存在待绘制的字符,是则返回步骤q2;否则结束操作;
所述初始化字符容器具体为,根据当前选择的按键的类型初始化字符容器,如果当前选择的按键为字母键时,判断所述按键状态标识,如果是小写标识,则将所述字符容器中存储小写字母;如果是锁定大写标识,则将所述字符容器中存储大写字母。
4.如权利要求3所述的方法,其特征在于,所述步骤W4中所述根据接收到的第二触屏事件通知获取键值,具体为,
所述键盘控件根据所述第二触屏事件通知获取触摸点坐标,遍历所述按键信息对象容器中的按键信息对象,获取与所述触摸点坐标匹配的按键信息对象,根据所述按键信息对象获取键值。
5.如权利要求1所述的方法,其特征在于,所述步骤W4中所述键值的类型还包括退出键;
如果是退出键将退出键信息作为所述键值信息通知发送给所述密码框控件,结束;
所述步骤S4中还包括,退出键;
如果是退出键,则将所述键盘控件状态标识复位,并将所述键盘控件状态标识作为绘制键盘控件事件通知发送给键盘控件,清空所述第一存储区,返回步骤S1。
6.如权利要求2所述的方法,其特征在于,所述步骤W4中所述键值的类型还包括分屏键;
如果是分屏键,则执行步骤X1;
步骤X1:判断所述切换屏幕方向标识,如果是横屏,则执行步骤X2;
如果是竖屏,则返回步骤W1;
步骤X2:判断所述分屏标识是否置位,是则执行步骤X3;否则执行步骤X6;
步骤X3:获取屏幕的高度,将其作为按键面板的宽度,根据当前选择的按键的类型获取按键属性信息,根据所述按键面板的宽度和所述按键属性信息计算按键面板的高度,执行步骤X4;
步骤X4:调用绘制背景函数,根据所述按键面板的宽度和所述按键面板的高度绘制按键面板背景图,根据所述按键属性信息在按键面板背景图上绘制按键背景图;
步骤X5:调用绘制字符函数,根据所述按键属性信息在按键背景图上绘制字符,将所述分屏标识复位,返回步骤W1;
步骤X6:获取屏幕的高度,根据所述屏幕的高度计算分键盘的宽度,根据当前选择的按键的类型获取按键属性信息,根据所述分键盘的宽度和所述按键属性信息计算分键盘的高度,执行步骤X7;
步骤X7:调用绘制背景函数,根据所述分键盘的宽度和所述分键盘的高度绘制第一分键盘的按键面板背景图和第二分键盘的按键面板背景图,根据所述按键属性信息在所述第一分键盘的按键面板背景图上绘制按键背景图,在所述第二分键盘的按键面板背景图上绘制按键背景图;
步骤X8:调用绘制字符函数在所述第一分键盘的按键背景图上绘制字符,在所述第二分键盘的按键背景图上绘制字符,将所述分屏标识置位,返回步骤W1。
7.如权利要求6所述的方法,其特征在于,所述按键属性信息包括,按键总数、按键高度、按键宽度。
8.如权利要求7所述的方法,其特征在于,所述根据所述按键面板的宽度和所述按键属性信息计算按键面板的高度,具体为,
根据所述按键面板的宽度和所述按键宽度计算每行排列的按键的个数,根据所述按键总数和所述每行排列的按键的个数计算按键排列的行数,根据所述行数和所述按键高度计算按键面板的高度。
9.如权利要求2所述的方法,其特征在于,所述初始化,还包括初始化按键计数值、按键状态标识,清空第二存储区;
所述步骤W4中所述键值的类型还包括上档键;如果是上档键,则执行步骤C1;
步骤C1:判断所述按键状态标识是否为锁定大写标识,是则将所述按键状态标识置为小写标识,调用绘制字符函数在按键背景图上绘制字符,返回步骤W1;否则执行步骤C2;
步骤C2:更新所述按键计数值,根据触摸事件通知判断按键从被按下到弹起之间的时间间隔是否大于第一预设时间,是则进入支持多点触摸模式,返回步骤W1;否则执行步骤C3;
步骤C3:将所述按键状态标识置为锁定大写标识,调用绘制字符函数在按键背景图上绘制字符,返回步骤W1。
10.如权利要求1所述的方法,其特征在于,所述步骤S5具体为,判断所述第一存储区是否为空,是则从所述键值信息通知中获取密文,将所述密文保存至所述第一存储区中,返回步骤S1;否则获取所述第一存储区中的数据,并对获取到的数据进行解密,得到第一明文,从所述键值信息通知中获取密文,对所述密文进行解密,得到第二明文,将所述第一明文和所述第二明文顺序拼接,对拼接结果进行加密,得到第一加密结果,用所述第一加密结果更新所述第一存储区中的数据,返回步骤S1。
11.如权利要求1所述的方法,其特征在于,
所述步骤S6中所述获取所述第一存储区中的数据具体为,判断所述第一存储区是否为空,是则提示不存在要删除的数据,返回步骤S1;否则获取所述第一存储区中的数据。
12.如权利要求1所述的方法,其特征在于,
所述步骤S7具体为,判断所述第一存储区是否为空,是则提示不存在要发送的数据,返回步骤S1;否则获取所述第一存储区中的数据并对其进行解密,将解密后的数据作为待发送信息,将所述待发送信息发送给上层应用,清空所述第一存储区,结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310743214.3A CN103745174B (zh) | 2013-12-30 | 2013-12-30 | 一种安全键盘的工作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310743214.3A CN103745174B (zh) | 2013-12-30 | 2013-12-30 | 一种安全键盘的工作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103745174A CN103745174A (zh) | 2014-04-23 |
CN103745174B true CN103745174B (zh) | 2016-08-24 |
Family
ID=50502191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310743214.3A Active CN103745174B (zh) | 2013-12-30 | 2013-12-30 | 一种安全键盘的工作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103745174B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104917603B (zh) * | 2014-09-22 | 2019-03-12 | 中兴通讯股份有限公司 | 一种信息安全传递方法、接收终端、及发送终端 |
CN105430022B (zh) * | 2015-12-31 | 2019-10-11 | 宇龙计算机通信科技(深圳)有限公司 | 一种数据输入控制方法和终端设备 |
CN108287745A (zh) * | 2018-02-11 | 2018-07-17 | 青岛海信电器股份有限公司 | 一种WebApp界面的显示方法及终端设备 |
CN109101116B (zh) * | 2018-07-24 | 2021-10-08 | 紫金财产保险股份有限公司 | iOS终端设备安全键盘及其实现方法 |
CN110764680B (zh) * | 2018-07-25 | 2022-12-27 | 京东科技控股股份有限公司 | 生成模拟键盘的方法、装置、电子设备及计算机可读介质 |
CN110598486B (zh) * | 2019-08-30 | 2022-02-15 | 北京奇艺世纪科技有限公司 | 虚拟键盘加密方法、装置及可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102843681A (zh) * | 2012-08-15 | 2012-12-26 | 腾讯科技(深圳)有限公司 | 信息交互方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080180237A1 (en) * | 2007-01-30 | 2008-07-31 | Fayyad Salem A | Vehicle emergency communication device and a method for transmitting emergency textual data utilizing the vehicle emergency communication device |
-
2013
- 2013-12-30 CN CN201310743214.3A patent/CN103745174B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102843681A (zh) * | 2012-08-15 | 2012-12-26 | 腾讯科技(深圳)有限公司 | 信息交互方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103745174A (zh) | 2014-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103745174B (zh) | 一种安全键盘的工作方法 | |
RU2656685C1 (ru) | Способ формирования пароля и устройство для его осуществления | |
CN101587398A (zh) | 密码保护方法 | |
CN105956857A (zh) | 一种安全虚拟密码键盘的生成系统以及方法 | |
CN103491062B (zh) | 一种生成密码的方法和装置 | |
CN101840469A (zh) | 在安全存储器域中绘制图像并关联用户输入的方法和系统 | |
US20180123796A1 (en) | Authentication-based message display method and communication terminal thereof | |
KR101509495B1 (ko) | 키패드의 이동을 통한 보안 키패드 입력 장치 및 방법 | |
CN103631507B (zh) | 虚拟键盘提供方法和装置 | |
US10003462B2 (en) | Key generating method and apparatus | |
KR101122197B1 (ko) | 터치 위치 해킹에 의한 정보 유출을 방지하는 가상키패드 표시 방법 | |
CN102855065A (zh) | 终端设备的涂鸦解锁方法及终端设备 | |
US10032015B2 (en) | Password input method based on a two-stage conversion and a system using thereof | |
CN114722361A (zh) | 基于摩斯编码的数据防护方法、装置、设备及存储介质 | |
CN113515216A (zh) | 应用程序切换方法、装置及电子设备 | |
WO2016188215A1 (zh) | 一种触摸屏的信息输入的方法及装置 | |
CN107272920B (zh) | 变更按键与字符的对应关系的方法及装置 | |
CN107679395B (zh) | 一种密码设置方法、装置及计算机可读存储介质 | |
CN111052113A (zh) | 为防止移动设备的污点及窥视攻击的系统及用户图案认证方法 | |
KR101653102B1 (ko) | 단순화된 쿼티 소프트웨어 키패드를 이용한 한글/영어/숫자/기호 문자 입력 방법 | |
KR101721474B1 (ko) | 보안성이 강화된 가상 키패드 생성방법 및 장치 | |
KR101808246B1 (ko) | 안전한 키 입력을 위한 보안 키패드 생성 방법 및 시스템 | |
KR101612625B1 (ko) | 소프트웨어 키패드를 이용한 한글/영어/숫자 입력 방법 | |
CN103870757A (zh) | 一种基于直角坐标系的数字密码编制方法 | |
CN113485611B (zh) | 图像显示方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |