获取输入字符的方法及装置
技术领域
本说明书披露的多个实施例涉及网络通信技术领域,尤其涉及一种获取输入字符的方法及装置。
背景技术
随着互联网技术发展,人们越来越频繁地使用终端(如,手机、电脑)中包括的多个应用(Application,简称APP),以满足生活或工作的各种需求。例如,使用支付应用(如,支付宝等)进行转账、付款等操作,或者使用笔记应用(如,印象笔记等)记录工作事项或生活点滴,又或者使用购物应用(如,淘宝、天猫超市等)查看购物咨询或购买所需商品,再或者使用出行应用(如,飞猪旅行等)购买火车票、飞机票或预定酒店等。
用户在使用APP时,难免需要输入一些个人敏感信息。例如,在APP中注册账号时,需要输入手机号、密码等信息。又例如,在APP中进行实名认证时,需要输入姓名、身份证号、手机号、常用邮箱等信息。再例如,使用APP进行转账操作时,需要输入转出方和转入方的银行卡号、姓名、手机号等信息。目前,用户在APP中所输入的信息存在较大的被盗用的风险。因此,需要提供更安全的方式,以保证用户在APP中所输入信息的安全。
发明内容
本说明书描述了一种获取输入字符的方法及装置,通过创建与系统默认的、用于接收输入框中的输入字符的第二函数相对应的第一函数,以及将第一函数的第一内存地址与第二函数的第二内存地址进行互换,以使系统通过第二内存地址回调第一函数来获取输入框中的输入字符,从而保证用户在输入框中所输入字符的安全。
第一方面,提供了一种获取输入字符的方法。该方法包括:
响应于对输入框进行的激活操作,创建第一函数,所述第一函数与系统默认的、用于接收所述输入框中的输入字符的第二函数相对应,所述第一函数被分配有第一内存地址,所述第二函数被分配有第二内存地址;
将所述第一函数映射到所述第二内存地址、所述第二函数映射到所述第一内存地址;
响应于对输入框进行的字符输入操作,通过所述第二内存地址回调所述第一函数,并通过所述第一函数获取所述字符输入操作对应的输入字符。
在一种可能的实施方式中,所述创建第一函数,包括:
随机生成所述第一函数的名称。
在一种可能的实施方式中,所述随机生成所述第一函数的名称包括:根据当前时间生成所述第一函数的名称。
在一种可能的实施方式中,所述创建第一函数,包括:
创建第一类,所述第一类与所述第二函数所属的系统默认类相对应;
在所述第一类中创建所述第一函数。
在一种可能的实施方式中,所述创建第一类,包括:随机生成所述第一类的名称。
在一种可能的实施方式中,所述将所述第一函数映射到所述第二内存地址、所述第二函数映射到所述第一内存地址,包括:
使用地址互换函数,将所述第一内存地址和所述第二内存地址进行互换。
在一种可能的实施方式中,还包括:
通过第一函数随机生成伪装字符;
通过所述第一内存地址调用所述第二函数,从而将所述伪装字符传递给所述第二函数。
在一种可能的实施方式中,所述通过第一函数随机生成伪装字符,包括:
随机生成第一字符;
判断所述第一字符与所述输入字符是否相等;
在所述第一字符与所述输入字符相等的情况下,重新生成第一字符;
在所述第一字符与所述输入字符不相等的情况下,将所述第一字符作为所述伪装字符。
在一种可能的实施方式中,所述通过所述第一内存地址调用所述第二函数,包括:
利用自调用函数调用所述第一内存地址。
在一种可能的实施方式中,还包括:
将通过所述第一函数接收的输入字符提交至服务器。
第二方面,提供了一种字符输入装置。该装置包括:
创建单元,用于响应于对输入框进行的激活操作,创建第一函数,所述第一函数与系统默认的、用于接收所述输入框中的输入字符的第二函数相对应,所述第一函数被分配有第一内存地址,所述第二函数被分配有第二内存地址;
映射单元,用于将所述第一函数映射到所述第二内存地址、所述第二函数映射到所述第一内存地址;
回调单元,用于响应于对输入框进行的字符输入操作,通过所述第二内存地址回调所述第一函数;
获取单元,用于通过所述第一函数获取所述字符输入操作对应的输入字符。
在一种可能的实施方式中,所述创建单元具体用于:
随机生成所述第一函数的名称。
在一种可能的实施方式中,所述创建单元具体用于:
根据当前时间生成所述第一函数的名称。
在一种可能的实施方式中,所述创建单元具体包括:
第一创建子单元,用于创建第一类,所述第一类与所述第二函数所属的系统默认类相对应;
第二创建子单元,用于在所述第一类中创建所述第一函数。
在一种可能的实施方式中,所述第一创建子单元具体用于:
随机生成所述第一类的名称。
在一种可能的实施方式中,所述映射单元具体用于:
使用地址互换函数,将所述第一函数映射到所述第二内存地址、所述第二函数映射到所述第一内存地址。
在一种可能的实施方式中,还包括:
生成单元,用于通过第一函数随机生成伪装字符;
调用单元,用于通过所述第一内存地址调用所述第二函数,从而将所述伪装字符传递给所述第二函数。
在一种可能的实施方式中,所述生成单元具体用于:
随机生成第一字符;
判断所述第一字符与所述输入字符是否相等;
在所述第一字符与所述输入字符相等的情况下,重新生成第一字符;
在所述第一字符与所述输入字符不相等的情况下,将所述第一字符作为所述伪装字符。
在一种可能的实施方式中,所述调用单元具体用于:
利用自调用函数调用所述第一内存地址。
在一种可能的实施方式中,还包括:
提交单元,用于将通过所述第一函数接收的输入字符提交至服务器。
第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序。当所述计算机程序在计算机中执行时,令计算机执行上述第一方面中任一种实施方式提供的方法。
第四方面,提供了一种计算设备,包括存储器和处理器。所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述第一方面中任一种实施方式提供的方法。
在本说明书提供的一种获取输入字符的方法中,首先,响应于对输入框进行的激活操作,创建用于接收输入框中的输入字符的第一函数,该方法与系统默认的、用于接收输入字符的第二函数相对应。接着,将第一函数的第一内存地址和第二函数的第二内存地址进行互换。然后,响应于对输入框进行的字符输入操作,通过第二内存地址回调第一函数,并通过第一函数获取输入字符,而非通过系统默认的第二函数获取输入字符。通过采用这种方法,可以有效地防止系统默认的第二函数被监控时输入字符被盗取的情况的发生,从而有效地保证用户的输入字符的安全。
进一步地,在通过第二内存地址回调第一函数时,还可以通过第一函数随机生成伪装字符,并通过第一内存地址调用第二函数,以使第二函数获取该伪装字符,从而使不法分子在监控系统默认的第二函数以截取用户的输入字符时,获取到与输入字符(用户真正输入的信息)不同的伪装字符。如此,在通过创建第一函数获取输入字符的基础上,使监控第二函数的不法分子截取到随机生成的伪装字符,实现对第一函数的掩护,从而更加有效地保证用户输入字符的安全。
附图说明
为了更清楚地说明本说明书披露的多个实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书披露的多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书披露的一个实施例提供的一种获取输入字符的方法应用场景示意图;
图2为本说明书披露的一个实施例提供的一种获取输入字符的方法流程图;
图3为本说明书披露的一个实施例提供的另一种获取输入字符的方法流程图;
图4为本说明书披露的一个实施例提供的一种获取输入字符的交互示意图;
图5为本说明书披露的一个实施例提供的一种获取输入字符的装置的结构图。
具体实施方式
下面结合附图,对本说明书披露的多个实施例进行描述。
图1为本说明书披露的一个实施例提供的一种获取输入字符的方法应用场景示意图。所述方法的执行主体可以为应用程序。如图1所示,当用户点击应用程序界面中的输入框,以及在输入框中输入字符时,可以采用本说明书披露的多个实施例提供的字符输入方法。
响应于对输入框进行的点击操作,创建用于接收输入框中的输入字符的新函数,该新函数与系统默认的、用于接收输入框中的输入字符的系统回调函数相对应。接着,将新函数的地址和系统回调函数的地址进行互换。然后,响应于对输入框进行的字符输入操作,仍然调用原地址,但是由于地址已经互换,通过原地址回调的将是新创建的函数,由此通过新函数获取输入字符,而不是通过原系统回调函数来获取输入字符。通过采用这种函数,可以有效地防止系统默认的回调函数被监控时输入字符被盗取的情况的发生,从而加强了对用户输入信息的安全保护。
本领域技术人员知道,在面向过程的工程代码中直接采用“函数”的概念,而在面向对象的工程代码中使用“方法(method)”来描述类似概念。因此,在面向对象语言的情况下,当提及“方法”的时候,其作用类似于上述函数。
图2为本说明书披露的一个实施例提供的一种获取输入字符的方法流程图。所述方法的执行主体可以为应用程序。如图2所示,所述方法具体包括:
步骤S210,响应于对输入框进行的激活操作,创建第一函数。
具体地,激活操作可以是用户对输入框进行的点击操作,还可以是其它可以使输入框处于待输入状态的操作,待输入状态是指可以使用户直接在该输入框中进行字符输入的状态,例如,输入框中光标的闪烁表明接下来可以直接在该输入框中输入字符。在一个实施例中,当跳转到某些包括至少一个输入框的界面时,该界面中的某个输入框(如,默认为第一个)中会自动出现光标并呈现闪烁状态,此时可以响应于使该输入框处于待输入状态的界面跳转操作,创建第一方法(也就是第一函数)。
创建的第一方法与系统默认的、用于接收输入框中的输入字符的第二方法(也就是第二函数)相对应,第一方法具有第一内存地址,第二方法具有第二内存地址。换而言之,第二方法是默认的系统回调方法,而第一方法是“仿照”系统回调方法而创建的新方法。下面对这两个方法的运行环境和新方法的创建过程进行描述。
可以理解,操作系统(Operating System,简称OS)是管理和控制终端软件与软件资源的程序,是直接运行在终端上的最基本的系统软件,任何其他软件都必须在操作系统(如,Windows系统,或安卓(Android)系统,或iOS系统等)的支持下才能运行。相应地,在编写应用程序(为了提高特定处理效率的程序总称为“应用程序”,如支付宝应用)的过程中,需要利用操作系统提供的功能(如,基本的输入输出部分的程序)进行编写。
基于上述内容,应用程序中所涉及的系统默认的、用于接收输入框中的输入字符的第二方法,可以是基于OS提供的基本的输入输出部分的程序编写而成的。而且,第二方法可以为由函数名称(如,textChange)、变量类型(如,String)、变量名称(如,text)组成的系统默认函数(如,textChange(String text))。
此外,用户在打开终端中的应用程序(如,对该应用的图标进行点击操作)时,该应用程序需要被加载到内存后才能运行。任何的程序(如,C语言printf(“你好”))都是指令(如,printf)和数据(如,你好)的组合体,而内存(如,使用动态随机存取存储器(DynamicRandom Access Memory,简称DRAM)芯片的主存储器)是终端中保存命令和数据的场所,通过地址(如,二进制编码为01001001的地址)对其存储的内容进行标记和指定。相应地,当程序中包括的指令和数据被加载到内存中时,会被分配有相应的内存地址。
对于本说明书实施例中涉及的第二方法(也就是由指令和数据组成的函数),当其被加载到内存中时,会具有相应的内存地址,也就是前述内容中提及的第二方法所具有的第二内存地址。而第一方法具有的第一内存地址,为在内存中创建第一方法时,为第一方法所分配的内存地址。
在一个实施例中,创建第一方法,可以包括:创建第一类,且该类与第二方法所属的系统默认类相对应;接着,在第一类中创建与第二方法对应的第一方法。在一个例子中,可以利用系统默认类所继承的类(如,所继承的类可以为超级父类)创建第一类,以使第一类中可以创建与第二方法相对应的第一方法。
第一方法与第二方法相对应,是指第一方法与第二方法的功能相同,均用于接收输入框中的输入字符。由此,第一方法与第二方法具有相同的结构,例如,可以具有相同的参数类型(如,String)、变量(如,text),但具有不同的方法名称(如,第一方法的名称可以为exchangeMethod,第二方法的名称可以为textChange)。
在一个实施例中,创建第一类,可以包括:随机生成第一类的名称。在一个例子中,随机生成第一类的名称,可以包括:采用随机算法生成第一类的名称。其中随机算法采用了一定程度的随机性作为其逻辑的一部分,该算法通常使用随机位作为辅助输入来指导其行为,而随机位可以根据多个维度(如,时间、用户名等)中的至少一个维度来确定。例如,随机生成的第一类的名称可以为“Exchange‘ID’Class“(如,当前用户的用户名为Gloria,则第一类的名称可以为ExchangeGloriaClass)。
类似地,在一个实施例中,创建第一方法,可以包括:随机生成第一方法的名称。在一个例子中,可以根据多个维度(如,时间、用户名等)中的至少一个维度来生成第一方法的名称。例如,随机生成的第一方法的名称可以为“exchange‘time’Method”(如,当前时间为11:10am,则第一方法的名称可以为exchange1110Method)。
需要说明的是,上述对第一方法和第一类的创建均为动态创建。动态创建类和方法是指利用程序语言运行时(run time)特性,动态在内存中创建私有类(也就是非操作系统中存在的默认类)和方法。其中,运行时特性是指由动态编程语言(如,java、Objective-c)编写的程序在运行时可以改变其结构(例如,可以引进新的函数或者删除已有的函数等)的特性。
此外,第一类和系统默认类的相同之处在于,这两个类继承了相同的父类,以及在第一类和系统默认类中创建了具有对应关系的第一方法和第二方法。而两者的不同之处在于,第一类中可以只包括第一方法,而系统默认类中还可以包括除第二方法以外的其他方法。
在步骤S210中创建第一方法后,接着,在步骤S220,将第一函数映射到第二内存地址、第二函数映射到第一内存地址。也就是,将第一方法的第一内存地址和第二方法的第二内存地址进行互换。
在一个实施例中,可以使用地址互换函数,将第一内存地址(在编程语言中可以体现为第一方法的名称)和第二内存地址(在编程语言中可以体现为第二方法的名称)进行互换。
在一个例子中,第一方法和第二方法的名称分别为exchangeMethod和textChange,地址互换函数的名称可以为method_exchangeImplementations。据此,可以使用包括语句“method_exchangeImplementations(textChange,exchangeMethod);”的程序实现第一方法的第一内存地址和第二方法的第二内存地址的互换。
步骤S230,响应于对输入框进行的字符输入操作,通过第二内存地址回调第一函数,并通过第一函数获取输入字符。
具体地,由于第二内存地址是系统默认的回调方法的地址,因此当用户在输入框中进行字符输入操作(如,在输入框中输入字符或删除字符)时,仍然默认地按照原地址进行调用,即仍然访问第二内存地址,但是由于第一方法和第二方法的地址已经互换,当前第二内存地址对应的是新创建的第一方法,因此通过第二内存地址回调的是第一方法,由此通过第一方法获取了输入框中的输入字符,而非通过系统默认的第二方法获取输入框中的输入字符。如此,可以有效地防止系统默认的第二方法被监控时输入字符被盗取的情况的发生。
在一个实施例中,响应于对输入框进行的字符输入的每个操作,相应地通过第二内存地址回调一次第一方法。也就是说,输入框中每接收一个字符,则相应地通过第二内存地址回调一次第一方法。在一个例子中,首先,用户在输入框中输入一个字符(如,‘a’),则触发应用程序通过第二内存地址回调第一方法。接着,用户再在输入框中输入一个字符(如,‘_’),则再次触发应用程序通过第二内存地址回调第一方法。
需要说明的是,在步骤S230之后,还可以包括:将通过第一方法获取的字符显示在输入框中。在一个实施例中,用户每在输入框中输入一个字符,就触发一次对第一方法的回调,并通过第一方法获取该字符,以及将该字符显示在输入框中。当然,可以直接显示所获取的字符,也可以对字符进行脱敏处理(是指对敏感数据进行变形处理)后再进行显示。例如,用户在输入键盘中点击字符“1”,则通过第一方法获取字符“1”后,在输入框中直接显示字符“1”。又例如,用户在输入键盘中点击字符“2”,则通过第一方法获取字符“2”后,在输入框中显示“*”,以防止因他人窥视而导致字符信息的泄露。
此外,在步骤S230之后,还可以包括:将通过第一方法获取的输入字符提交至服务器。在一个实施例中,将通过第一方法获取的输入字符提交至服务器,可以包括:当输入框中接收的输入字符的个数达到预定个数时,将这些输入字符提交至服务器。或者,根据接收的提交指令,将通过第一方法获取的输入字符提交至服务器。
在一个例子中,输入字符的预定个数,可以由该输入框所对应的输入信息的类别(如,密码、身份证号、银行卡号等)所确定。例如,用于接收密码信息的输入框,其所对应的输入字符的预定个数可以为6。又例如,用于接收身份证号的输入框,其所对应的输入字符的预定个数可以为18。再例如,用于接收交通银行的银行卡号的输入框,其所对应的输入字符的预定个数可以为17。
在一个例子中,当输入框中接收的输入字符的个数达到预定个数时,可以自动触发应用程序将接收的输入字符提交至服务器。
在另一个例子中,可以根据接收的提交指令(如,该提交指令可以为用户通过点击应用界面中的提交按键所输入的指令),将通过第一方法接收的输入字符(如,用户姓名“王立民”)提交至服务器。
由上可知,在本申请说明书披露的多个实施例提供的获取输入字符的方法中,首先,响应于对输入框进行的激活操作,创建用于接收输入框中的输入字符的第一函数,该方法与系统默认的、用于接收输入字符的第二函数相对应。接着,将第一函数的第一内存地址和第二函数的第二内存地址进行互换。然后,响应于对输入框进行的字符输入操作,通过第二内存地址回调第一函数,并通过第一函数获取输入字符,而非通过系统默认的第二函数获取输入字符。通过采用这种方法,可以有效地防止系统默认的第二函数被监控时输入字符被盗取的情况的发生,从而有效地保证用户的输入字符的安全。
图3为本说明书披露的一个实施例提供的另一种获取输入字符的方法流程图。所述方法的执行主体可以为应用程序。如图3所示,所述方法具体包括:
步骤S310,响应于对输入框进行的激活操作,创建第一函数。
步骤S320,将第一函数映射到第二内存地址、第二函数映射到第一内存地址。
步骤S330,响应于对输入框进行的字符输入操作,通过第二内存地址回调第一函数,并通过第一函数获取输入字符。
对步骤S310-步骤S330的描述,可以参见上述对步骤S210-步骤S230的描述,在此不作赘述。
步骤S340,通过第一函数随机生成伪装字符。
具体地,通过第一方法(也就是第一函数)随机生成伪装字符,可以包括:将随机生成的字符直接作为伪装字符。或者,可以包括:随机生成第一字符,并判断第一字符与输入字符是否相等。在第一字符与输入字符相等的情况下,重新生成第一字符;而在第一字符与输入字符不相等的情况下,将第一字符作为伪装字符。
对于这两种方式,因随机生成的伪装字符具有随机性,随机生成的多个伪装字符与用户输入的完整信息中包括的多个输入字符完全相同的概率较低,所以将随机生成的字符作为伪装字符的方式,通常可以达到较好的伪装效果。另外,对于首先判断随机生成的第一字符与输入字符是否相等的方式,可以确保将与输入字符不相等的第一字符作为伪装字符,从而可以达到最全面、最佳的伪装效果。
在一个例子中,假定随机生成的字符为“1”,则可以直接将该字符作为伪装字符。
在一个例子中,假定输入字符为“1”,随机生成的第一字符为“2”。据此可以判断出第一字符与输入字符不相等,并将第一字符“2”作为伪装字符。
在另一个例子中,假定输入字符为“1”,随机生成的第一字符为“1”。据此可以判断出第一字符与输入字符相等,并重新生成第一字符。假定重新随机生成的第一字符为“2”,据此可以判断出第一字符与输入字符不相等,并将第一字符“2”作为伪装字符。
在步骤S340中随机生成伪装字符后,接着,在步骤S350,通过第一内存地址调用第二函数,从而将伪装字符传递给第二函数。
在一个实施例中,通过第一内存地址调用第二方法(也就是第二函数),可以包括:利用自调用函数(如,self.)调用第一内存地址,进而通过第一内存地址调用第二方法。需要说明的是,自调用函数是对自身方法进行调用的函数。在本实施例中,在第一方法中执行自调用函数,于是自调用函数会自动地调用所属方法的默认地址,即第一方法的第一内存地址。然而,如前所述,第一内存地址和第二内存地址已经互换,但自调用函数无法获知该互换过程,因此,它按照第一内存地址进行调用时,实际调用的是第二方法,由此实现将伪装字符传递给第二方法。
因在通过创建第一方法获取输入字符时,系统默认的第二方法可能存在长期不被调用的情况,由此可能引起不法分子(如,通过植入钓鱼程序或监听程序,在系统默认的第二方法处设置断点,以截取用户的输入字符的人员)的怀疑,进而存在查找到创建的第一方法,转而对第一方法进行监控的风险。
前述在步骤S340中随机生成伪装字符,以及在步骤S450中通过第一内存地址调用第二方法,以使第二方法获取伪装字符,可以使不法分子在监控系统默认的第二方法以截取用户的输入字符时,仍然可以监听到第二方法被调用,仍然可以获得到字符,但是获取到却是与输入字符(用户真正输入的信息)不同的伪装字符。如此,在通过创建第一方法获取输入字符的基础上,使监控第二方法的不法分子截取到随机生成的伪装字符,实现对第一方法的掩护,从而更加有效地保证用户输入字符的安全。
需要说明的是,不同输入框可以用于接收具有不同类别(如,姓名、身份证号、密码、生日、昵称、银行卡号等)的输入信息。不同类别的输入信息往往具有不同的敏感度,也就是说,有的类别(如,身份证号、密码)所对应的输入信息的敏感度较高,如果这些输入信息被泄露会给用户造成较大的安全隐患(如,不法分子可以利用用户的身份证号进行贷款等),而有的类别(如,生日、昵称)所对应的输入信息的敏感度较低。
对于具有较高敏感度的输入信息所对应的输入字符,在步骤S330通过第一方法获取该输入字符后,可以继续执行步骤S340和步骤S350。而对于具有较低敏感度的输入信息所对应的输入字符,在步骤S330通过第一方法获取该输入字符后,可以不执行步骤S340和步骤S350,也就是不需要生成伪装字符以及让第二方法获取伪装字符,而是直接通过第一内存地址调用第二方法,并将输入字符(用户输入的真实信息)传递给第二方法。
相应地,在步骤S330之后,还可以包括:判断是否需要生成输入字符的伪装字符。在一个实施例中,可以通过输入框的标记(tag)值来判断。其中输入框的标记值与输入字符的类别相对应,例如,标记值为1001、1002和1003的输入框对应的类别分别为姓名、身份证号和密码。
判断是否需要生成输入字符的伪装字符,可以包括:当输入框的标记值属于预设标记值集合时,则需要生成该输入字符的伪装字符,也就是需要执行步骤S340和步骤S350。当输入框的标记值不属于预设标记值集合时,则直接通过第一内存地址调用第二方法,并将该输入字符传递给第二方法。其中,预设标记值集合可以根据标记值所对应的输入信息的类别的敏感度确定。
接下来,结合图4,对本说明书多个实施例提供的获取输入字符的交互过程进行示例性说明。如图4所示,所述交互过程可以包括:
步骤S410,用户对APP中的输入框进行激活。
步骤S420,APP创建用于接收输入框中输入字符的第一方法,该方法具有第一内存地址,且与系统默认的具有第二内存地址的第二方法相对应。
步骤S430,将第一方法的第一内存地址和第二方法的第二内存地址进行互换。
步骤S440,用户在输入框中输入字符。
步骤S450,通过第二内存地址回调第一方法,并通过第一方法获取用户所输入的输入字符。
步骤S460,通过第一方法随机生成伪装字符。
步骤S470,通过第一内存地址调用第二方法,从而将伪装字符传递给第二方法。
由上可知,在本申请说明书披露的多个实施例提供的获取输入字符的方法中,首先,响应于对输入框进行的激活操作,创建用于接收输入框中的输入字符的第一函数,该函数与系统默认的、用于接收输入字符的第二函数相对应。接着,将第一函数的第一内存地址和第二函数的第二内存地址进行互换。然后,响应于对输入框进行的字符输入操作,通过第二内存地址回调第一函数,并通过第一函数获取输入字符,而非通过系统默认的第二函数获取输入字符。通过采用这种函数,可以有效地防止系统默认的第二函数被监控时输入字符被盗取的情况的发生,从而有效地保证用户的输入字符的安全。
进一步地,在通过第二内存地址回调第一函数时,还可以通过第一函数随机生成伪装字符,并通过第一内存地址调用第二函数,以使第二函数获取该伪装字符,从而使不法分子在监控系统默认的第二函数以截取用户的输入字符时,获取到与输入字符(用户真正输入的信息)不同的伪装字符。如此,在通过创建第一函数获取输入字符的基础上,使监控第二函数的不法分子截取到随机生成的伪装字符,实现对第一函数的掩护,从而更加有效地保证用户输入字符的安全。
与上述字符输入方法对应地,本说明书披露的多个实施例还提供一种获取输入字符的装置,如图5所示,该装置包括:
创建单元510,用于响应于对输入框进行的激活操作,创建第一函数,第一函数与系统默认的、用于接收输入框中的输入字符的第二函数相对应,第一函数具有第一内存地址,第二函数具有第二内存地址;
映射单元520,用于将第一函数映射到第二内存地址、第二函数映射到第一内存地址;
回调单元530,用于响应于对输入框进行的字符输入操作,通过第二内存地址回调第一函数;
获取单元540,用于通过第一函数获取字符输入操作对应的输入字符。
在一种可能的实施方式中,创建单元510具体用于:
随机生成第一函数的名称。
在一种可能的实施方式中,创建单元510具体用于:
根据当前时间生成第一函数的名称。
在一种可能的实施方式中,创建单元510具体包括:
第一创建子单元511,用于创建第一类,第一类与第二函数所属的系统默认类相对应;
第二创建子单元512,用于在第一类中创建第一函数。
在一种可能的实施方式中,第一创建子单元511具体用于:
随机生成第一类的名称。
在一种可能的实施方式中,映射单元520具体用于:
使用地址互换函数,将第一内存地址和第二内存地址进行互换。
在一种可能的实施方式中,还包括:
生成单元550,用于通过第一函数随机生成伪装字符;
调用单元560,用于通过第一内存地址调用第二函数,从而将伪装字符传递给第二函数。
在一种可能的实施方式中,生成单元550具体用于:
随机生成第一字符;
判断第一字符与输入字符是否相等;
在第一字符与输入字符相等的情况下,重新生成第一字符;
在第一字符与输入字符不相等的情况下,将第一字符作为伪装字符。
在一种可能的实施方式中,调用单元560具体用于:
利用自调用函数调用第一内存地址。
在一种可能的实施方式中,还包括:
提交单元570,用于将通过第一函数接收的输入字符提交至服务器。
由上可知,采用本申请说明书披露的多个实施例提供的获取输入字符的装置中,创建单元510响应于对输入框进行的激活操作,创建用于接收输入框中的输入字符的第一函数,该函数与系统默认的、用于接收输入字符的第二函数相对应。映射单元520将第一函数的第一内存地址和第二函数的第二内存地址进行互换。调用单元530响应于对输入框进行的字符输入操作,通过第二内存地址回调第一函数,获取单元540通过第一函数获取输入字符,而非通过系统默认的第二函数获取输入字符。通过采用这种装置,可以有效地防止系统默认的第二函数被监控时输入字符被盗取的情况的发生,从而有效地保证用户的输入字符的安全。
进一步地,生成单元550通过第一函数随机生成伪装字符,调用单元560通过第一内存地址调用第二函数,以使第二函数获取该伪装字符,从而使不法分子在监控系统默认的第二函数以截取用户的输入字符时,获取到与输入字符(用户真正输入的信息)不同的伪装字符。如此,在通过创建第一函数获取输入字符的基础上,使监控第二函数的不法分子截取到随机生成的伪装字符,实现对第一函数的掩护,从而更加有效地保证用户输入字符的安全。
以上所述的具体实施方式,对本说明书披露的多个实施例的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书披露的多个实施例的具体实施方式而已,并不用于限定本说明书披露的多个实施例的保护范围,凡在本说明书披露的多个实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书披露的多个实施例的保护范围之内。