iOS终端设备安全键盘及其实现方法与流程

文档序号:16427511发布日期:2018-12-28 19:53阅读:644来源:国知局
iOS终端设备安全键盘及其实现方法与流程

本发明属于ios安全键盘技术领域,特别是涉及ios终端设备安全键盘及其实现方法。

背景技术

随着移动互联网技术的快速发展,越来越多的移动应用出现在我们的生活当中。这些应用越来越多的需要录入我们个人的敏感信息,而在录入的过程中,保护好我们的个人信息如银行卡信息,密码账户信息,身份证信息等越来越显得重要。

ios设备应用程序基本使用的输入键盘是系统默认的简体中文输入键盘。在输入用户的账号密码或者其他重要信息时,如果使用系统的简体中文输入法键盘、英文字符和数字字符的密码等重要信息时,会自动启动系统输入法自动更正提示,然后用户的输入记录会被缓存下来。

这些系统键盘的缓存信息可以通过系统输入法的自动更正的字符串输入记录拿到。通过导出字符串缓存文件,我们可以看到输入记录都是用明文存储的,因为用户系统不会把所有用户的输入记录当做密码等敏感信息来处理,一般情况下,一个常规iphone用户的输入缓存文件,高频率出现的字符串就是用户名和密码。

所以,在输入用户账号密码等敏感信息时,避免使用系统键盘,而使用自己定制的更加安全的键盘十分重要。主要可以防止第三方读取系统键盘缓存,避免用户截屏或者第三方软件截屏录屏造成信息泄露。

本发明致力于研发一种ios终端设备安全键盘及其实现方法,致力于解决ios设备系统键盘中通过截屏、回显以及由于键盘按键固定可通过缓存文件获取用户信息的安全问题。



技术实现要素:

本发明的目的在于提供ios终端设备安全键盘及其实现方法,通过绘制层绘制随机键盘同时安全键盘输入内容时采用当前安全键盘的地址作为密钥一部分的aes128加密算法,实现了安全键盘内容的安全存储;通过uitextfield的text属性增加“·”来代替输入内容,有效避免输入内容回显;同时反截屏逻辑层自定义通知用于监视用户截屏并及时清除输入内容及其对应的内存中的加密数据,避免因截屏导致信息泄露;解决了现有ios设备系统键盘中通过截屏、回显以及由于键盘按键固定可通过缓存文件获取用户信息的安全问题。

为解决上述技术问题,本发明是通过以下技术方案实现的:

本发明为ios终端设备安全键盘,包括:绘制层、加密层、加密逻辑层、反截屏逻辑层、接口层;其中:

所述绘制层绘制的安全键盘包括数字键盘、字母键盘和符号键盘;所述绘制层通过洗牌算法打乱键盘键值序列产生键盘键值随机序列;所述绘制层通过将键盘键值随机序列依次赋值给键盘内的各按键类对象产生随机键盘;

所述加密层采用aes128和md5结合加密;所述加密层采用aes128加密算法对密钥和加密对象加密获取密文并将密文存储在内存;所述加密层采用所述md5加密算法对安全键盘地址与固定字符串拼接后的字符串加密获得密钥;

所述加密逻辑层通过手势uitapgesturerecognizer监视安全键盘上的按键触发获取按键键值;所述获取到的按键键值通过加密层加密后存储到内存;所述加密逻辑层利用uitextfield的text属性增加一个“·”;

所述反截屏逻辑层自定义通知用于监视用户截屏;所述通知与事件绑定;所述事件包括清除输入内容及其对应的内存中的加密数据、产生新的键盘键值随机序列;

所述接口层自定义ios输入文本框mmdencypttextfield并绑定安全键盘;所述接口层增加获取加密后的实际输入内容接口。

优选地,所述绘制层定义按键类并实现与键盘中按键数量相同数量的键按键类对象;所述绘制层获取按键类对象的位置并将按键类对象添加到展示容器view对应位置生成安全键盘;所述键盘键值序列包括数字键盘键值序列、字母键盘键值序列、符号键盘键值序列依次与数字键盘、字母键盘、符号键盘对应。

优选地,所述洗牌算法打乱键盘键值序列产生键盘键值随机序列具体包括如下:

所述洗牌算法为arc4random算法;采用所述arc4random产生n个范围在0~n-1内的相异随机数;所述安全键盘内的按键与n个随机数依次对应;遍历所述安全键盘内的按键,将当前按键对应随机数位置的按键键值赋值给当前按键键值。

优选地,所述加密层利用密钥和aes128加密算法解密内存中所述密文;所述密钥通过md5加密算法对安全键盘地址与固定字符串拼接后的字符串加密获得。

ios终端设备安全键盘的实现方法,包括如下步骤:

a000:绘制层绘制安全键盘;利用ios系统提供的api绘制安全键盘布局并实现安全键盘基本功能;通过更改系统输入框的inputview绑定安全键盘的界面;

a001:绘制层生成随机键盘;利用洗牌算法打乱键盘键值序列并产生键盘键值随机序列;将键盘键值随机序列依次赋值给键盘内的各按键类对象产生随机键盘;

a002:加密逻辑层输入内容;通过手势uitapgesturerecognizer监视安全键盘上的按键触发获取按键键值;所述获取到的按键键值通过加密层加密后存储到内存;所述加密逻辑层利用uitextfield的text属性增加一个“·”;

a003:加密层对输入内容加密;加密层采用aes128加密算法对密钥和加密对象加密获取密文并将密文存储在内存;

a004:反截屏逻辑层实现反截屏;自定义通知用于监视用户截屏并与事件绑定;

a005:接口层对外提供接口调用;自定义ios输入文本框mmdencypttextfield并绑定安全键盘;增加获取加密后的实际输入内容接口,取消输入文本框长按黏贴和剪切的功能;若使用明文方式:先导入头文件import"mmdkeyboardmanager.h"并绑定textfield;使用密文方式时:先导入头文件import"mmdencypttextfield.h",直接使用自定义mmdencypttextfield。

优选地,其特征在于,所述安全键盘基本功能包括数字键盘、字母键盘和符号键盘的显示、切换和关闭。

本发明具有以下有益效果:

1、本发明的绘制层通过将键盘键值随机序列依次赋值给键盘内的各按键类对象产生随机键盘;实现每一次弹出安全键盘时,安全键盘内的按键排布顺序均不同,避免用户通过监听按键位置获取输入内容以及观察按键输入位置估测输入内容进而导致信息泄露,提高了安全键盘内容输入的安全性;

2、本发明通过uitextfield的text属性增加“·”来代替输入内容,有效避免输入内容回显,避免安全键盘进行输入时通过获取回显盗取输入信息,提高用户输入时的安全性;

3、本发明通过同时反截屏逻辑层自定义通知用于监视用户截屏并及时清除输入内容及其对应的内存中的加密数据,避免因截屏导致信息泄露,间接保证使用安全键盘时的安全性;

4、本发明通过采用aes128和md5结合加密且采用md5加密算法对安全键盘地址与固定字符串拼接后的字符串加密获得密钥,同时每次重新弹出安全键盘时安全键盘地址均不同,保证用户输入内容的安全性。

当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的ios终端设备安全键盘的实现方法的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明为ios终端设备安全键盘,包括:绘制层、加密层、加密逻辑层、反截屏逻辑层、接口层;其中:

绘制层绘制的安全键盘包括数字键盘、字母键盘和符号键盘;绘制层通过洗牌算法打乱键盘键值序列产生键盘键值随机序列;绘制层通过将键盘键值随机序列依次赋值给键盘内的各按键类对象产生随机键盘;

加密层采用aes128和md5结合加密;加密层采用aes128加密算法对密钥和加密对象加密获取密文并将密文存储在内存;加密层采用md5加密算法对安全键盘地址与固定字符串拼接后的字符串加密获得密钥;

加密逻辑层通过手势uitapgesturerecognizer监视安全键盘上的按键触发获取按键键值;获取到的按键键值通过加密层加密后存储到内存;加密逻辑层利用uitextfield的text属性增加一个“·”;

反截屏逻辑层自定义通知用于监视用户截屏;通知与事件绑定;事件包括清除输入内容及其对应的内存中的加密数据、产生新的键盘键值随机序列;

接口层自定义ios输入文本框mmdencypttextfield并绑定安全键盘;接口层增加获取加密后的实际输入内容接口。

其中,绘制层定义按键类并实现与键盘中按键数量相同数量的键按键类对象;绘制层获取按键类对象的位置并将按键类对象添加到展示容器view对应位置生成安全键盘;键盘键值序列包括数字键盘键值序列、字母键盘键值序列、符号键盘键值序列依次与数字键盘、字母键盘、符号键盘对应。

其中,洗牌算法打乱键盘键值序列产生键盘键值随机序列具体包括如下:

洗牌算法为arc4random算法;采用arc4random产生n个范围在0~n-1内的相异随机数;安全键盘内的按键与n个随机数依次对应;遍历安全键盘内的按键,将当前按键对应随机数位置的按键键值赋值给当前按键键值。

其中,加密层利用密钥和aes128加密算法解密内存中密文;密钥通过md5加密算法对安全键盘地址与固定字符串拼接后的字符串加密获得。

请参阅图1所示,ios终端设备安全键盘的实现方法,包括如下步骤:

a000:绘制层绘制安全键盘;利用ios系统提供的api绘制安全键盘布局并实现安全键盘基本功能;通过更改系统输入框的inputview绑定安全键盘的界面;

a001:绘制层生成随机键盘;利用洗牌算法打乱键盘键值序列并产生键盘键值随机序列;将键盘键值随机序列依次赋值给键盘内的各按键类对象产生随机键盘;

a002:加密逻辑层输入内容;通过手势uitapgesturerecognizer监视安全键盘上的按键触发获取按键键值;获取到的按键键值通过加密层加密后存储到内存;加密逻辑层利用uitextfield的text属性增加一个“·”;

通过手势uitapgesturerecognizer监视安全的按键触发。用户首次输入时,通过监视按键触发获得按键值,通过上述加密算法加密获得密文后存储在内存中。通过uitextfield的text属性,增加一个“·”,以达到输入功能。用户再次输入或者修改时,先通过上述加密算法获得内存中字符串,对内存中的字符串进行增加或者修改,再次保存在内存中。解密得到字符串时,获取字符串的长度,在输入框中增加对应长度的“·”,达到无回文的效果。

用户的真实数据和显示数据分别在内存和输入框中,因此删除需要单独设计。用户删除功能的具体实现:当前有选中内容时,先获取文本选中范围,在解密后的内存文本中删除对应选中范围文本,再在文本框中删除对应文本;光标在首位时,不执行动作;光标在其他位置时,先获取光标的位置,在解密后的文本对应光标位置删除一个字符,然后在文本框减少一个“·”。

a003:加密层对输入内容加密;加密层采用aes128加密算法对密钥和加密对象加密获取密文并将密文存储在内存;

本发明采用的加密算法是aes128和md5结合加密,aes是一种对称加密算法,能加密字符串和通过盐来解密,md5是非对称加密,用来产生不可逆的密钥。由于加密和解密都在程序的运行过程中,每次启动安全键盘内存地址是非固定的,而运行时是固定。加密过程先取出当前安全键盘的内存地址并拼接固定字符串,然后进行md5加密,md5加密后的值作为密钥和要加密的对象(即输入的密码)进行aes加密,加密后保存在内存中。解密过程:先通过上述方法取得当前安全键盘内存地址和固定字串md5加密后得到密钥,通过密钥和aes算法讲内存中密文解密出来。

a004:反截屏逻辑层实现反截屏;自定义通知用于监视用户截屏并与事件绑定;

先在自定义键盘代码功能内注册一个uiapplicationuserdidtakescreenshotnotification的通知;绑定通知和事件。该通知主要用来监视用户截屏。事件包含功能清除已经输入好的内容、内存中的加密数据和产生新的键盘键值随机序列,弹出弹框,提示当前正在截屏,输入敏感信息时不可截屏。

a005:接口层对外提供接口调用;自定义ios输入文本框mmdencypttextfield并绑定安全键盘;增加获取加密后的实际输入内容接口,取消输入文本框长按黏贴和剪切的功能;若使用明文方式:先导入头文件import"mmdkeyboardmanager.h"并绑定textfield;使用密文方式时:先导入头文件import"mmdencypttextfield.h",直接使用自定义mmdencypttextfield。

其中,安全键盘基本功能包括数字键盘、字母键盘和符号键盘的显示、切换和关闭。

值得注意的是,上述系统实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成。

以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1