一种安全键盘的工作方法.pdf

上传人:Y94****206 文档编号:6161030 上传时间:2019-05-13 格式:PDF 页数:28 大小:4.50MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310743214.3

申请日:

2013.12.30

公开号:

CN103745174A

公开日:

2014.04.23

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 21/83申请日:20131230|||公开

IPC分类号:

G06F21/83(2013.01)I; G06F21/60(2013.01)I

主分类号:

G06F21/83

申请人:

飞天诚信科技股份有限公司

发明人:

陆舟; 于华章

地址:

100085 北京市海淀区学清路9号汇智大厦B楼17层

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

本发明涉及一种安全键盘的工作方法,属于信息安全领域。本发明提供的方法具体为,密码框控件判断接收到的数据的类型,如果是第一触屏事件通知,则设置键盘控件状态标识,并将其作为绘制键盘控件通知发送给键盘控件;如果是键值信息通知,则根据键值执行相应操作,并将执行结果保存至第一存储区;如果是获取信息通知,则获取第一存储区中的数据,并将其发送给上层应用;键盘控件接收到事件通知时,判断事件通知类型,如果是绘制键盘控件事件通知,则根据键盘控件状态标识显示或隐藏键盘控件;如果是第二触屏事件通知,则根据键值类型执行相应操作;如果是切换屏幕方向事件通知,则重绘键盘控件。

权利要求书

权利要求书
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;否则获取所述第一存储区中的数据并对其进行解密,将解密后的数据作为待发送信息,将所述待发送信息发送给上层应用,清空所述第一存储区,结束。

说明书

说明书一种安全键盘的工作方法
技术领域
本发明涉及信息安全领域,特别涉及一种安全键盘的工作方法。
背景技术
随着电子商务的兴起,网络安全越来越受到关注,在现有技术中,人们常使用软键盘输入数据来提高网络交易的安全性,软键盘是显示在屏幕上的由软件控制的一种虚拟键盘,用户可以用鼠标点击软键盘上的按键进行数据输入。
本发明人发现,现有技术存在以下缺陷,用户在软键盘上输入数据时,由于软键盘上的按键位置是不变的,所以黑客可以通过捕获鼠标的轨迹方式盗取输入数据。
发明内容
为解决现有技术中的缺陷,本发明提供一种安全键盘的工作方法,包括,
上层应用初始化密码框控件、初始化键盘控件,清空第一存储区、将切换屏幕方向标识复位、将键盘控件状态标识复位;
步骤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为本发明实施例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所示,密码框触屏事件处理函数的工作流程,具体包括:
步骤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;否则结束操作。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

一种安全键盘的工作方法.pdf_第1页
第1页 / 共28页
一种安全键盘的工作方法.pdf_第2页
第2页 / 共28页
一种安全键盘的工作方法.pdf_第3页
第3页 / 共28页
点击查看更多>>
资源描述

《一种安全键盘的工作方法.pdf》由会员分享,可在线阅读,更多相关《一种安全键盘的工作方法.pdf(28页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103745174 A (43)申请公布日 2014.04.23 CN 103745174 A (21)申请号 201310743214.3 (22)申请日 2013.12.30 G06F 21/83(2013.01) G06F 21/60(2013.01) (71)申请人 飞天诚信科技股份有限公司 地址 100085 北京市海淀区学清路 9 号汇智 大厦 B 楼 17 层 (72)发明人 陆舟 于华章 (54) 发明名称 一种安全键盘的工作方法 (57) 摘要 本发明涉及一种安全键盘的工作方法, 属于 信息安全领域。本发明提供的方法具体为, 密码 框控件判断接收到的。

2、数据的类型, 如果是第一触 屏事件通知, 则设置键盘控件状态标识, 并将其作 为绘制键盘控件通知发送给键盘控件 ; 如果是键 值信息通知, 则根据键值执行相应操作, 并将执行 结果保存至第一存储区 ; 如果是获取信息通知, 则获取第一存储区中的数据, 并将其发送给上层 应用 ; 键盘控件接收到事件通知时, 判断事件通 知类型, 如果是绘制键盘控件事件通知, 则根据键 盘控件状态标识显示或隐藏键盘控件 ; 如果是第 二触屏事件通知, 则根据键值类型执行相应操作 ; 如果是切换屏幕方向事件通知, 则重绘键盘控件。 (51)Int.Cl. 权利要求书 4 页 说明书 15 页 附图 8 页 (19)。

3、中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书4页 说明书15页 附图8页 (10)申请公布号 CN 103745174 A CN 103745174 A 1/4 页 2 1. 一种安全键盘的工作方法, 其特征在于, 上层应用初始化密码框控件、 初始化键盘控 件, 清空第一存储区、 将切换屏幕方向标识复位、 将键盘控件状态标识复位 ; 步骤 S1 : 所述密码框控件等待接收数据 ; 步骤 S2 : 所述密码框控件判断接收到的数据的类型, 如果是第一触屏事件通知, 则执 行步骤 S3 ; 如果是键值信息通知, 则执行步骤 S4 ; 如果是获取信息通知, 则执行步骤 S7 ; 步骤。

4、 S3 : 所述密码框控件判断所述键盘控件状态标识是否复位, 是则将所述键盘控件 状态标识置位, 并将所述键盘控件状态标识作为绘制键盘控件事件通知发送给所述键盘控 件, 返回步骤 S1 ; 否则将所述键盘控件状态标识复位, 并将所述键盘控件状态标识作为绘 制键盘控件事件通知发送给所述键盘控件, 返回步骤 S1 ; 步骤 S4 : 所述密码框控件判断所述键值信息通知, 如果是字符键, 则执行步骤 S5 ; 如果 是删除键, 则执行步骤 S6 ; 步骤 S5 : 所述密码框控件获取所述第一存储区中的数据, 并对获取到的数据进行解 密, 得到第一明文, 从所述键值信息通知中获取密文, 对所述密文进行。

5、解密, 得到第二明文, 将所述第一明文和所述第二明文顺序拼接, 对拼接结果进行加密, 得到第一加密结果, 用所 述第一加密结果更新所述第一存储区中的数据, 返回步骤 S1 ; 步骤 S6 : 所述密码框控件获取所述第一存储区中的数据, 并对获取到的数据进行解密 得到明文, 将所述明文中的最后一个字符删除得到新的明文, 对所述新的明文进行加密, 得 到第二加密结果, 用所述第二加密结果更新所述第一存储区中的数据, 返回步骤 S1 ; 步骤 S7 : 所述密码框控件获取所述第一存储区中的数据, 并对获取到的数据进行解密 得到待发送信息, 并所述待发送信息发送给所述上层应用, 清空所述第一存储区, 。

6、返回步骤 S1 ; 步骤 W1 : 所述键盘控件等待接收事件通知 ; 步骤 W2 : 所述键盘控件判断接收到的事件通知类型, 如果是绘制键盘控件事件通知, 则执行步骤 W3 ; 如果是第二触屏事件通知, 则执行步骤 W4 ; 如果是切换屏幕方向事件通知, 则根据所述切换屏幕方向标识绘制按键背景图, 在所述按键背景图上绘制字符, 返回步骤 W1 ; 步骤 W3 : 所述键盘控件从所述绘制键盘事件通知中获取键盘控件状态标识, 判断所述 键盘控件状态标识是否置位, 是则根据所述切换屏幕方向标识绘制按键背景图, 在所述按 键背景图上绘制字符, 返回步骤 W1 ; 否则隐藏所述键盘控件, 返回步骤 W1。

7、 ; 步骤 W4 : 所述键盘控件根据接收到的第二触屏事件通知获取键值, 判断所述键值的类 型, 如果是字符键, 则对所述键值进行加密得到密文, 将所述密文和字符键信息作为键值信 息通知发送给所述密码框控件, 在所述按键背景图上绘制字符, 返回步骤 W1 ; 如果是删除 键, 则将删除键信息作为所述键值信息通知发送给所述密码框控件, 在所述按键背景图上 绘制字符, 返回步骤 W1。 2. 如权利要求 1 所述的方法, 其特征在于, 所述初始化, 还包括将分屏标识复位 ; 所述步骤 W3 中所述根据所述切换屏幕方向标识绘制按键背景图, 在所述按键背景图 上绘制字符, 具体为, 步骤 Z1, 根据。

8、所述切换屏幕方向标识判断屏幕方向, 如果是横屏, 则执行步骤 Z2 ; 如果 是竖屏, 则执行步骤 Z3 ; 权 利 要 求 书 CN 103745174 A 2 2/4 页 3 步骤 Z2 : 获取屏幕的高度, 将其作为按键面板的宽度, 根据所述按键面板的宽度和按 键属性信息计算按键面板的高度, 执行步骤 Z4 ; 步骤 Z3 : 将所述分屏标识复位, 获取屏幕的宽度, 将其作为按键面板的宽度, 根据所述 按键面板的宽度和按键属性信息计算按键面板的高度, 执行步骤 Z4 ; 步骤 Z4 : 调用绘制背景图函数根据所述按键面板的高度和所述按键面板的宽度绘制 按键面板背景图, 在所述按键面板背景。

9、图上绘制按键背景图, 执行步骤 Z5 ; 步骤 Z5 : 调用绘制字符函数在所述按键背景图上绘制字符, 显示键盘控件。 3. 如权利要求 2 所述的方法, 其特征在于, 所述初始化还包括, 将按键状态标识置为小 写标识 ; 所述在所述按键背景图上绘制字符, 具体为, 步骤 q1 : 初始化字符容器 ; 步骤 q2 : 创建一个按键信息对象 ; 步骤 q3 : 从所属字符容器中随机获取一个待绘制的字符作为当前键值, 计算当前键值 对应的按键的坐标、 按键的绘制区域 ; 步骤 q4 : 调用绘制背景函数, 根据所述按键的坐标和所述按键的绘制区域绘制当前键 值对应的按键背景图, 调用绘制字符函数绘制。

10、当前键值 ; 步骤 q5 : 将所述当前键值、 所述按键的坐标、 所述按键的绘制区域作为按键信息对象, 将所述按键信息对象保存至所述按键信息对象容器中, 删除所述字符容器中的所述待绘制 的字符 ; 步骤 q6 : 判断所述字符容器中是否存在待绘制的字符, 是则返回步骤 q2 ; 否则结束操 作 ; 所述初始化字符容器具体为, 根据当前选择的按键的类型初始化字符容器, 如果当前 选择的按键为字母键时, 判断所述按键状态标识, 如果是小写标识, 则将所述字符容器中存 储小写字母 ; 如果是锁定大写标识, 则将所述字符容器中存储大写字母。 4. 如权利要求 3 所述的方法, 其特征在于, 所述步骤 。

11、W4 中所述根据接收到的第二触屏 事件通知获取键值, 具体为, 所述键盘控件根据所述第二触屏事件通知获取触摸点坐标, 遍历所述按键信息对象容 器中的按键信息对象, 获取与所述触摸点坐标匹配的按键信息对象, 根据所述按键信息对 象获取键值。 5. 如权利要求 1 所述的方法, 其特征在于, 所述步骤 W4 中所述键值的类型还包括退出 键 ; 如果是退出键将退出键信息作为所述键值信息通知发送给所述密码框控件, 结束 ; 所述步骤 S4 中还包括, 退出键 ; 如果是退出键, 则将所述键盘控件状态标识复位, 并将所述键盘控件状态标识作为绘 制键盘控件事件通知发送给键盘控件, 清空所述第一存储区, 返。

12、回步骤 S1。 6. 如权利要求 2 所述的方法, 其特征在于, 所述步骤 W4 中所述键值的类型还包括分屏 键 ; 如果是分屏键, 则执行步骤 X1 ; 步骤 X1 : 判断所述切换屏幕方向标识, 如果是横屏, 则执行步骤 X2 ; 如果是竖屏, 则返回步骤 W1 ; 权 利 要 求 书 CN 103745174 A 3 3/4 页 4 步骤 X2 : 判断所述分屏标识是否置位, 是则执行步骤 X3 ; 否则执行步骤 X6 ; 步骤 X3 : 获取屏幕的高度, 将其作为按键面板的宽度, 根据当前选择的按键的类型获 取按键属性信息, 根据所述按键面板的宽度和所述按键属性信息计算按键面板的高度,。

13、 执 行步骤 X4 ; 步骤 X4 : 调用绘制背景函数, 根据所述按键面板的宽度和所述按键面板的高度绘制按 键面板背景图, 根据所述按键属性信息在按键面板背景图上绘制按键背景图 ; 步骤 X5 : 调用绘制字符函数, 根据所述按键属性信息在按键背景图上绘制字符, 将所 述分屏标识复位, 返回步骤 W1 ; 步骤 X6 : 获取屏幕的高度, 根据所述屏幕的高度计算分键盘的宽度, 根据当前选择的 按键的类型获取按键属性信息, 根据所述分键盘的宽度和所述按键属性信息计算分键盘的 高度, 执行步骤 X7 ; 步骤 X7 : 调用绘制背景函数, 根据所述分键盘的宽度和所述分键盘的高度绘制第一分 键盘的。

14、按键面板背景图和第二分键盘的按键面板背景图, 根据所述按键属性信息在所述第 一分键盘的按键面板背景图上绘制按键背景图, 在所述第二分键盘的按键面板背景图上绘 制按键背景图 ; 步骤 X8 : 调用绘制字符函数在所述第一分键盘的按键背景图上绘制字符, 在所述第二 分键盘的按键背景图上绘制字符, 将所述分屏标识置位, 返回步骤 W1。 7. 如权利要求 6 所述的方法, 其特征在于, 所述按键属性信息包括, 按键总数、 按键高 度、 按键宽度。 8. 如权利要求 7 所述的方法, 其特征在于, 所述根据所述按键面板的宽度和所述按键 属性信息计算按键面板的高度, 具体为, 根据所述按键面板的宽度和所。

15、述按键宽度计算每行排列的按键的个数, 根据所述按键 总数和所述每行排列的按键的个数计算按键排列的行数, 根据所述行数和所述按键高度计 算按键面板的高度。 9. 如权利要求 2 所述的方法, 其特征在于, 所述初始化, 还包括初始化按键计数值、 按 键状态标识, 清空第二存储区 ; 所述步骤 W4 中所述键值的类型还包括上档键 ; 如果是上档键, 则执行步骤 C1 ; 步骤 C1 : 判断所述按键状态标识是否为锁定大写标识, 是则将所述按键状态标识置为 小写标识, 调用绘制字符函数在按键背景图上绘制字符, 返回步骤 W1 ; 否则执行步骤 C2 ; 步骤 C2 : 更新所述按键计数值, 根据所述。

16、触摸事件通知判断按键从被按下到弹起之间 的时间间隔是否大于第一预设时间, 是则进入支持多点触摸模式, 返回步骤 W1 ; 否则执行 步骤 C3 ; 步骤 C3 : 将所述按键状态标识置为锁定大写标识, 调用绘制字符函数在按键背景图上 绘制字符, 返回步骤 W1。 10. 如权利要求 1 所述的方法, 其特征在于, 所述步骤 S5 具体为, 判断所述第一存储区 是否为空, 是则从所述键值信息通知中获取密文, 将所述密文保存至所述第一存储区中, 返 回步骤 S1 ; 否则获取所述第一存储区中的数据, 并对获取到的数据进行解密, 得到第一明 文, 从所述键值信息通知中获取密文, 对所述密文进行解密,。

17、 得到第二明文, 将所述第一明 文和所述第二明文顺序拼接, 对拼接结果进行加密, 得到第一加密结果, 用所述第一加密结 权 利 要 求 书 CN 103745174 A 4 4/4 页 5 果更新所述第一存储区中的数据, 返回步骤 S1。 11. 如权利要求 1 所述的方法, 其特征在于, 所述步骤 S6 中所述获取所述第一存储区中的数据具体为, 判断所述第一存储区是否 为空, 是则提示不存在要删除的数据, 返回步骤 S1 ; 否则获取所述第一存储区中的数据。 12. 如权利要求 1 所述的方法, 其特征在于, 所述步骤 S7 具体为, 判断所述第一存储区是否为空, 是则提示不存在要发送的数据。

18、, 返回步骤 S1 ; 否则获取所述第一存储区中的数据并对其进行解密, 将解密后的数据作为待 发送信息, 将所述待发送信息发送给上层应用, 清空所述第一存储区, 结束。 权 利 要 求 书 CN 103745174 A 5 1/15 页 6 一种安全键盘的工作方法 技术领域 0001 本发明涉及信息安全领域, 特别涉及一种安全键盘的工作方法。 背景技术 0002 随着电子商务的兴起, 网络安全越来越受到关注, 在现有技术中, 人们常使用软键 盘输入数据来提高网络交易的安全性, 软键盘是显示在屏幕上的由软件控制的一种虚拟键 盘, 用户可以用鼠标点击软键盘上的按键进行数据输入。 0003 本发明人。

19、发现, 现有技术存在以下缺陷, 用户在软键盘上输入数据时, 由于软键盘 上的按键位置是不变的, 所以黑客可以通过捕获鼠标的轨迹方式盗取输入数据。 发明内容 0004 为解决现有技术中的缺陷, 本发明提供一种安全键盘的工作方法, 包括, 0005 上层应用初始化密码框控件、 初始化键盘控件, 清空第一存储区、 将切换屏幕方向 标识复位、 将键盘控件状态标识复位 ; 0006 步骤 S1 : 所述密码框控件等待接收数据 ; 0007 步骤 S2 : 所述密码框控件判断接收到的数据的类型, 如果是第一触屏事件通知, 则执行步骤 S3 ; 如果是键值信息通知, 则执行步骤 S4 ; 如果是获取信息通知。

20、, 则执行步骤 S7 ; 0008 步骤 S3 : 所述密码框控件判断所述键盘控件状态标识是否复位, 是则将所述键盘 控件状态标识置位, 并将所述键盘控件状态标识作为绘制键盘控件事件通知发送给所述键 盘控件, 返回步骤 S1 ; 否则将所述键盘控件状态标识复位, 并将所述键盘控件状态标识作 为绘制键盘控件事件通知发送给所述键盘控件, 返回步骤 S1 ; 0009 步骤 S4 : 所述密码框控件判断所述键值信息通知, 如果是字符键, 则执行步骤 S5 ; 如果是删除键, 则执行步骤 S6 ; 0010 步骤 S5 : 所述密码框控件获取所述第一存储区中的数据, 并对获取到的数据进行 解密, 得到。

21、第一明文, 从所述键值信息通知中获取密文, 对所述密文进行解密, 得到第二明 文, 将所述第一明文和所述第二明文顺序拼接, 对拼接结果进行加密, 得到第一加密结果, 用所述第一加密结果更新所述第一存储区中的数据, 返回步骤 S1 ; 0011 步骤 S6 : 所述密码框控件获取所述第一存储区中的数据, 并对获取到的数据进行 解密得到明文, 将所述明文中的最后一个字符删除得到新的明文, 对所述新的明文进行加 密, 得到第二加密结果, 用所述第二加密结果更新所述第一存储区中的数据, 返回步骤 S1 ; 0012 步骤 S7 : 所述密码框控件获取所述第一存储区中的数据, 并对获取到的数据进行 解密。

22、得到待发送信息, 并所述待发送信息发送给所述上层应用, 清空所述第一存储区, 返回 步骤 S1 ; 0013 步骤 W1 : 所述键盘控件等待接收事件通知 ; 0014 步骤 W2 : 所述键盘控件判断接收到的事件通知类型, 如果是绘制键盘控件事件通 说 明 书 CN 103745174 A 6 2/15 页 7 知, 则执行步骤 W3 ; 如果是第二触屏事件通知, 则执行步骤 W4 ; 如果是切换屏幕方向事件通 知, 则根据所述切换屏幕方向标识绘制按键背景图, 在所述按键背景图上绘制字符, 返回步 骤 W1 ; 0015 步骤 W3 : 所述键盘控件从所述绘制键盘事件通知中获取键盘控件状态标。

23、识, 判断 所述键盘控件状态标识是否置位, 是则根据所述切换屏幕方向标识绘制按键背景图, 在所 述按键背景图上绘制字符, 返回步骤 W1 ; 否则隐藏所述键盘控件, 返回步骤 W1 ; 0016 步骤 W4 : 所述键盘控件根据接收到的第二触屏事件通知获取键值, 判断所述键值 的类型, 如果是字符键, 则对所述键值进行加密得到密文, 将所述密文和字符键信息作为键 值信息通知发送给所述密码框控件, 在所述按键背景图上绘制字符, 返回步骤 W1 ; 如果是 删除键, 则将删除键信息作为所述键值信息通知发送给所述密码框控件, 在所述按键背景 图上绘制字符, 返回步骤 W1。 0017 所述初始化, 。

24、还包括将分屏标识复位 ; 0018 所述步骤 W3 中所述根据所述切换屏幕方向标识绘制按键背景图, 在所述按键背 景图上绘制字符, 具体为, 0019 步骤 Z1, 根据所述切换屏幕方向标识判断屏幕方向, 如果是横屏, 则执行步骤 Z2 ; 如果是竖屏, 则执行步骤 Z3 ; 0020 步骤 Z2 : 获取屏幕的高度, 将其作为按键面板的宽度, 根据所述按键面板的宽度 和按键属性信息计算按键面板的高度, 执行步骤 Z4 ; 0021 步骤 Z3 : 将所述分屏标识复位, 获取屏幕的宽度, 将其作为按键面板的宽度, 根据 所述按键面板的宽度和按键属性信息计算按键面板的高度, 执行步骤 Z4 ; 。

25、0022 步骤 Z4 : 调用绘制背景图函数根据所述按键面板的高度和所述按键面板的宽度 绘制按键面板背景图, 在所述按键面板背景图上绘制按键背景图, 执行步骤 Z5 ; 0023 步骤 Z5 : 调用绘制字符函数在所述按键背景图上绘制字符, 显示键盘控件。 0024 所述初始化还包括, 将按键状态标识置为小写标识 ; 所述在所述按键背景图上绘 制字符, 具体为, 0025 步骤 q1 : 初始化字符容器 ; 0026 步骤 q2 : 创建一个按键信息对象 ; 0027 步骤 q3 : 从所属字符容器中随机获取一个待绘制的字符作为当前键值, 计算当前 键值对应的按键的坐标、 按键的绘制区域 ; 。

26、0028 步骤 q4 : 调用绘制背景函数, 根据所述按键的坐标和所述按键的绘制区域绘制当 前键值对应的按键背景图, 调用绘制字符函数绘制当前键值 ; 0029 步骤 q5 : 将所述当前键值、 所述按键的坐标、 所述按键的绘制区域作为按键信息 对象, 将所述按键信息对象保存至所述按键信息对象容器中, 删除所述字符容器中的所述 待绘制的字符 ; 0030 步骤 q6 : 判断所述字符容器中是否存在待绘制的字符, 是则返回步骤 q2 ; 否则结 束操作 ; 0031 所述初始化字符容器具体为, 根据当前选择的按键的类型初始化字符容器, 如果 当前选择的按键为字母键时, 判断所述按键状态标识, 如。

27、果是小写标识, 则将所述字符容器 中存储小写字母 ; 如果是锁定大写标识, 则将所述字符容器中存储大写字母。 说 明 书 CN 103745174 A 7 3/15 页 8 0032 所述步骤 W4 中所述根据接收到的第二触屏事件通知获取键值, 具体为, 0033 所述键盘控件根据所述第二触屏事件通知获取触摸点坐标, 遍历所述按键信息对 象容器中的按键信息对象, 获取与所述触摸点坐标匹配的按键信息对象, 根据所述按键信 息对象获取键值。 0034 所述步骤 W4 中所述键值的类型还包括退出键 ; 0035 如果是退出键将退出键信息作为所述键值信息通知发送给所述密码框控件, 结 束 ; 0036。

28、 所述步骤 S4 中还包括, 退出键 ; 0037 如果是退出键, 则将所述键盘控件状态标识复位, 并将所述键盘控件状态标识作 为绘制键盘控件事件通知发送给键盘控件, 清空所述第一存储区, 返回步骤 S1。 0038 所述步骤 W4 中所述键值的类型还包括分屏键 ; 0039 如果是分屏键, 则执行步骤 X1 ; 0040 步骤 X1 : 判断所述切换屏幕方向标识, 如果是横屏, 则执行步骤 X2 ; 如果是竖屏, 则返回步骤 W1 ; 0041 步骤 X2 : 判断所述分屏标识是否置位, 是则执行步骤 X3 ; 否则执行步骤 X6 ; 0042 步骤 X3 : 获取屏幕的高度, 将其作为按键。

29、面板的宽度, 根据当前选择的按键的类 型获取按键属性信息, 根据所述按键面板的宽度和所述按键属性信息计算按键面板的高 度, 执行步骤 X4 ; 0043 步骤 X4 : 调用绘制背景函数, 根据所述按键面板的宽度和所述按键面板的高度绘 制按键面板背景图, 根据所述按键属性信息在按键面板背景图上绘制按键背景图 ; 0044 步骤 X5 : 调用绘制字符函数, 根据所述按键属性信息在按键背景图上绘制字符, 将所述分屏标识复位, 返回步骤 W1 ; 0045 步骤 X6 : 获取屏幕的高度, 根据所述屏幕的高度计算分键盘的宽度, 根据当前选 择的按键的类型获取按键属性信息, 根据所述分键盘的宽度和所。

30、述按键属性信息计算分键 盘的高度, 执行步骤 X7 ; 0046 步骤 X7 : 调用绘制背景函数, 根据所述分键盘的宽度和所述分键盘的高度绘制第 一分键盘的按键面板背景图和第二分键盘的按键面板背景图, 根据所述按键属性信息在所 述第一分键盘的按键面板背景图上绘制按键背景图, 在所述第二分键盘的按键面板背景图 上绘制按键背景图 ; 0047 步骤 X8 : 调用绘制字符函数在所述第一分键盘的按键背景图上绘制字符, 在所述 第二分键盘的按键背景图上绘制字符, 将所述分屏标识置位, 返回步骤 W1。 0048 所述按键属性信息包括, 按键总数、 按键高度、 按键宽度。 0049 所述根据所述按键面。

31、板的宽度和所述按键属性信息计算按键面板的高度, 具体 为, 0050 根据所述按键面板的宽度和所述按键宽度计算每行排列的按键的个数, 根据所述 按键总数和所述每行排列的按键的个数计算按键排列的行数, 根据所述行数和所述按键高 度计算按键面板的高度。 0051 所述初始化, 还包括初始化按键计数值、 按键状态标识, 清空第二存储区 ; 0052 所述步骤 W4 中所述键值的类型还包括上档键 ; 如果是上档键, 则执行步骤 C1 ; 说 明 书 CN 103745174 A 8 4/15 页 9 0053 步骤 C1 : 判断所述按键状态标识是否为锁定大写标识, 是则将所述按键状态标识 置为小写标。

32、识, 调用绘制字符函数在按键背景图上绘制字符, 返回步骤 W1 ; 否则执行步骤 C2 ; 0054 步骤 C2 : 更新所述按键计数值, 根据所述触摸事件通知判断按键从被按下到弹起 之间的时间间隔是否大于第一预设时间, 是则进入支持多点触摸模式, 返回步骤 W1 ; 否则 执行步骤 C3 ; 0055 步骤 C3 : 将所述按键状态标识置为锁定大写标识, 调用绘制字符函数在按键背景 图上绘制字符, 返回步骤 W1。 0056 所述步骤 S5 具体为, 判断所述第一存储区是否为空, 是则从所述键值信息通知中 获取密文, 将所述密文保存至所述第一存储区中, 返回步骤 S1 ; 否则获取所述第一存。

33、储区 中的数据, 并对获取到的数据进行解密, 得到第一明文, 从所述键值信息通知中获取密文, 对所述密文进行解密, 得到第二明文, 将所述第一明文和所述第二明文顺序拼接, 对拼接结 果进行加密, 得到第一加密结果, 用所述第一加密结果更新所述第一存储区中的数据, 返回 步骤 S1。 0057 所述步骤 S6 中所述获取所述第一存储区中的数据具体为, 判断所述第一存储区 是否为空, 是则提示不存在要删除的数据, 返回步骤 S1 ; 否则获取所述第一存储区中的数 据。 0058 所述步骤 S7 具体为, 判断所述第一存储区是否为空, 是则提示不存在要发送的数 据, 返回步骤 S1 ; 否则获取所述。

34、第一存储区中的数据并对其进行解密, 将解密后的数据作 为待发送信息, 将所述待发送信息发送给上层应用, 清空所述第一存储区, 结束。 0059 本发明的有益效果为, 采用本发明提供的方法, 每次触发键盘控件时, 键盘控件上 的按键位置都是随机分布的, 达到了防止黑客捕获鼠标轨迹盗取输入数据的目的 ; 并且键 盘控件调用加密函数对输入的数据进行加密, 实现密文传输, 无法通过反编译密文获取密 码, 提高了输入数据的安全性。 附图说明 0060 图 1-1 为本发明实施例 1 提供的一种上层应用工作的方法流程图 ; 0061 图 1 为本发明实施例 1 提供的一种密码框触屏事件处理函数的工作方法流。

35、程图 ; 0062 图 2 为本发明实施例 1 提供的一种绘制键盘控件的方法流程图 ; 0063 图 3 为本发明实施例 1 提供的一种绘制字符按键的方法流程图 ; 0064 图4-1、 4-2、 4-3为本发明实施例1提供的一种键盘触屏事件处理函数的工作方法 流程图 ; 0065 图 5 为本发明实施例 1 提供的一种密码框控件处理键值信息通知的方法 ; 0066 图 6 为本发明实施例 1 提供的一种切换屏幕方向事件处理函数的工作方法流程 图。 具体实施方式 0067 下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完 整地描述, 显然, 所描述的实施例仅仅是本发明。

36、一部分实施例, 而不是全部的实施例。基于 说 明 书 CN 103745174 A 9 5/15 页 10 本发明中的实施例, 本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例, 都属于本发明保护的范围。 0068 实施例 1 0069 本发明实施例提供的技术方案应用于 Android 系统中, 涉及到键盘控件、 密码框 控件、 键盘触屏事件处理函数、 密码框触屏事件处理函数、 切换屏幕方向事件处理函数、 键 盘子函数以及 JNI(Java Native Interface, Java 本地调用) 中定义的加密函数和解密函 数。 0070 如图 1-1 所示, 上层应用进行。

37、如下操作包括, 0071 步骤 101、 上层应用初始化密码框控件, 初始化键盘控件, 清空第一存储区, 清空第 二存储区 ; 0072 步骤 102、 上层应用在密码框控件中注册触屏事件 ; 0073 本实施例中, 在密码框控件中注册触屏事件, 当密码框控件发生触屏事件时, 密码 框控件通过广播的方式向密码框触屏事件处理函数发送第一触屏事件通知。 0074 步骤 103、 上层应用在键盘控件中注册触屏事件和切换屏幕方向事件 ; 0075 本实施例中, 在键盘控件中注册触屏事件, 当键盘控件发生触屏事件时, 键盘控件 通过广播的方式向键盘触屏事件处理函数发送第一触屏事件通知 ; 0076 在键。

38、盘控件中注册切换屏幕方向事件, 当键盘控件发生切换屏幕方向事件时, 键 盘控件通过广播的方式向切换屏幕方向事件处理函数发送切换屏幕方向事件通知。 0077 步骤 104、 上层应用初始化按键计数值、 按键状态标识、 切换屏幕方向标识、 键盘控 件状态标识、 分屏标识, 初始化密钥、 算法 ; 0078 优选的, 按键计数值初始值为 0, 将按键状态标识置为小写标识, 将键盘控件状态 标识复位、 将切换屏幕方向标识复位, 将分屏标识复位, 将密钥初始值设为长度为 24 位的 随机数, 将算法设为 DES 算法。算法还可以为 3DES、 AES 等算法, 切换屏幕方向标识复位时 为竖屏状态。 00。

39、79 如图 1 所示, 密码框触屏事件处理函数的工作流程, 具体包括 : 0080 步骤 A1 : 密码框触屏事件处理函数等待接收第一触屏事件通知 ; 0081 步骤 A2 : 当密码框触屏事件处理函数接收到第一触屏事件通知时, 判断键盘控件 状态标识是否复位, 是则执行步骤 A3 ; 否则执行步骤 A4 ; 0082 步骤 A3 : 密码框触屏事件处理函数将键盘控件状态标识置位, 并将键盘控件状态 标识作为绘制键盘控件事件通知发送给键盘子函数, 返回步骤 A1 ; 0083 本实施例中, 当键盘子函数接收到绘制键盘控件事件通知时, 从绘制键盘控件事 件通知中获取键盘控件状态标识, 若键盘控件。

40、状态标识置位, 则键盘子函数根据切换屏幕 方向标识绘制键盘控件, 在按键背景图上绘制字符, 等待接收绘制键盘控件事件通知。 0084 步骤 A4 : 密码框触屏事件处理函数将键盘控件状态标识复位, 并将键盘控件状态 标识作为绘制键盘控件事件通知发送给键盘子函数, 返回步骤 A1。 0085 本实施例中, 当键盘子函数接收到绘制键盘控件事件通知时, 从绘制键盘控件事 件通知中获取键盘控件状态标识, 若键盘控件状态标识复位, 则键盘子函数隐藏键盘控件, 等待接收绘制键盘控件事件通知。 0086 如图 2 所示, 所述绘制键盘控件, 具体包括 : 说 明 书 CN 103745174 A 10 6/。

41、15 页 11 0087 步骤 Z1 : 键盘子函数根据切换屏幕方向标识判断屏幕方向, 如果是横屏则执行步 骤 Z2 ; 如果是竖屏则执行步骤 Z3 ; 0088 步骤 Z2 : 键盘子函数获取屏幕的高度, 将其作为按键面板的宽度, 根据按键面板 的宽度、 按键总数、 按键高度和按键宽度计算按键面板的高度, 执行步骤 Z4 ; 0089 本实施例中, 按键总数、 按键高度和按键宽度总称为按键属性信息 ; 按键总数初始 值为 30 个、 按键高度初始值为 32*32 像素、 按键宽度初始值为 32*32 像素。 0090 步骤 Z3 : 键盘子函数将分屏标识复位, 获取屏幕的宽度, 将其作为按键。

42、面板的宽 度, 根据按键面板的宽度、 按键总数、 按键高度和按键宽度计算按键面板的高度, 执行步骤 Z4 ; 0091 步骤 Z4 : 键盘子函数调用绘制背景图函数根据按键面板的高度和按键面板的宽 度绘制按键面板背景图, 在按键面板背景图上绘制按键背景图, 执行步骤 Z5 ; 0092 步骤 Z5 : 键盘子函数调用绘制字符函数在按键背景图上绘制字符, 显示键盘控 件。 0093 如图 3 所示, 所述绘制字符的方法, 具体包括 : 0094 步骤 q1 : 键盘子函数初始化字符容器 ; 0095 所述初始化字符容器具体为, 根据当前选择的按键的类型初始化字符容器, 如果 当前选择的按键为字母。

43、键时, 判断所述按键状态标识, 如果是小写标识, 则将所述字符容器 中存储小写字母 ; 如果是锁定大写标识, 则将所述字符容器中存储大写字母。 当第一次绘制 字符时, 默认选择的按键为小写字母。 0096 步骤 q2 : 键盘子函数创建一个按键信息对象 ; 0097 本实施例中, 每个字母对应一个按键信息对象, 各个字母对应的按键信息对象互 不相同。 0098 步骤 q3 : 键盘子函数从所属字符容器中随机获取一个待绘制的字符作为当前键 值, 计算当前键值对应的按键的坐标、 绘制区域 ; 0099 步骤 q4 : 键盘子函数调用绘制背景函数, 根据按键的坐标和绘制区域绘制当前键 值对应的按键背。

44、景图, 调用绘制字符函数绘制当前键值 ; 0100 步骤 q5 : 键盘子函数将当前键值、 按键的坐标、 按键的绘制区域保存为按键信息 对象, 将按键信息对象保存至按键信息对象容器中, 删除字符容器中的待绘制的字符 ; 0101 步骤 q6 : 键盘子函数判断字符容器中是否存在待绘制的字符, 是则返回步骤 q2 ; 否则结束。 0102 如图 4-1、 图 4-2 和图 4-3 所示, 键盘触屏事件处理函数的工作方法具体包括, 0103 步骤 201 : 键盘触屏事件处理函数等待接收第二触屏事件通知 ; 0104 步骤 202 : 当键盘触屏事件处理函数接收到第二触屏事件通知时, 根据第二触屏。

45、 事件通知获取键值, 判断键值类型, 如果是字符键, 则执行步骤 203 ; 如果是退出键, 则执行 步骤 205 ; 如果是切换系统输入法键, 则执行步骤 206 ; 如果是删除键, 则执行步骤 207 ; 如 果是分屏键, 则执行步骤 209 ; 如果是上档键, 则执行步骤 217 ; 0105 本实施例中, 判断键值类型的方法具体为, 键盘触屏事件处理函数根据第二触屏 事件通知获取触摸点坐标, 遍历按键信息对象容器中的按键信息对象, 从中获取与触摸点 坐标匹配的按键信息对象, 根据按键信息对象获取键值 ; 说 明 书 CN 103745174 A 11 7/15 页 12 0106 步骤。

46、 203 : 键盘触屏事件处理函数调用加密函数采用算法和密钥对键值进行加 密, 得到密文 ; 0107 本实施例中, 密钥可以为预设密钥, 还可以为, 按照预设方式更新预设密钥, 调用 加密函数采用算法和更新后的密钥对键值进行加密。 0108 例如, 键盘触屏事件处理函数根据第二触屏事件通知确定被触摸的按键为数字键 9, 键盘触屏事件处理函数调用 Safe_Encrpt(” 9” ,UKEY_KEYBOARD_KEYTMP) ; 对 9 进行加密 得到 9 的密文为 dwjfFLLIOYA。 0109 步骤 204 : 键盘触屏事件处理函数将加密结果和字符键信息作为键值信息通知发 送给密码框控。

47、件, 执行步骤 208 ; 0110 本步骤还可以为, 键盘触屏事件处理函数将加密结果和字符键信息作为键值信息 通知发送给密码框控件, 然后返回步骤 201 ; 0111 步骤 205 : 键盘触屏事件处理函数将退出键信息作为键值信息通知发送给密码框 控件, 结束操作 ; 0112 步骤 206 : 键盘触屏事件处理函数将切换系统输入法键信息作为键值信息通知发 送给密码框控件, 结束操作 ; 0113 步骤 207 : 键盘触屏事件处理函数将删除键信息作为键值信息通知发送给密码框 控件, 执行步骤 208 ; 0114 本步骤还可以为, 键盘触屏事件处理函数将删除键信息作为键值信息通知发送给 。

48、密码框控件, 然后返回步骤 201 ; 0115 步骤 208 : 键盘触屏事件处理函数根据当前选择的按键的类型调用绘制字符函数 在按键背景图上绘制字符, 显示键盘控件, 返回步骤 201。 0116 步骤 209 : 键盘触屏事件处理函数判断切换屏幕方向标识, 如果是横屏则执行步 骤 210 ; 如果是竖屏则返回步骤 201 ; 0117 步骤 210 : 键盘触屏事件处理函数判断分屏标识是否置位, 是则执行步骤 211 ; 否 则执行步骤 214 ; 0118 步骤 211 : 键盘触屏事件处理函数获取屏幕的高度, 将屏幕的高度作为按键面板 的宽度, 根据当前选择的按键的类型获取按键总数、。

49、 按键宽度、 按键高度, 执行步骤 212 ; 0119 优选的, 按键高度和按键宽度相等。 0120 步骤 212 : 键盘触屏事件处理函数根据按键面板的宽度、 按键总数、 按键高度、 按 键宽度计算按键面板的高度, 调用绘制背景函数, 根据按键面板的宽度和按键面板的高度 绘制按键面板背景图, 根据按键高度和按键宽度在按键面板背景图上绘制按键背景图 ; 0121 本实施例中, 根据按键面板的宽度和按键宽度计算每行排列的按键的个数, 根据 按键总数和每行排列的按键的个数计算按键排列的行数, 根据行数和按键高度计算按键面 板的高度。 0122 优选的, 将按键面板的宽度与按键宽度做除法运算, 得到的结果作为每行排列的 按键的个数, 将按键总数与每行排列的按键的个数做除法运算, 得到的结果作为按键排列 的行。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 >


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1