一种操作系统内部的通信方法及设备转让专利

申请号 : CN201610380683.7

文献号 : CN106020999B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 曾元清

申请人 : 广东欧珀移动通信有限公司

摘要 :

本发明实施例涉及通信技术领域,公开了一种操作系统内部的通信方法及设备。其中,该方法包括:终端设备的应用层对字符串进行哈希运算得到特征序列;终端设备的应用层将上述特征序列传递给该终端设备的操作系统内核;终端设备的操作系统内核根据上述特征序列查询配置表以找到字符串指定的资源和/或操作。实施本发明实施例,可以防止应用层和操作系统内核间的交互被第三方软件监控而泄露用户信息,并且实现通信过程的算法复杂度低、节省时间。

权利要求 :

1.一种操作系统内部的通信方法,其特征在于,包括:

终端设备的应用层对字符串进行哈希运算得到哈希序列;

所述终端设备的应用层对所述哈希序列进行二次哈希运算得到次哈希序列,将所述次哈希序列作为特征序列;

所述终端设备的应用层将所述特征序列传递给所述终端设备的操作系统内核;

所述终端设备的操作系统内核根据所述特征序列遍历配置表,以确定所述特征序列是否对应多于一个哈希序列;所述配置表为以所述终端设备的应用层发送给所述终端设备的操作系统内核的字符串的特征序列为索引建立的配置表,所述配置表包含所述特征序列与所述字符串指定的资源和/或操作的对应关系;

若所述特征序列对应多于一个哈希序列,则所述终端设备的操作系统内核向所述终端设备的应用层请求所述对字符串进行哈希运算得到的哈希序列;

所述终端设备的操作系统内核接收所述终端设备的应用层发送的所述对字符串进行哈希运算得到的哈希序列;

所述终端设备的操作系统内核根据所述对字符串进行哈希运算得到的哈希序列查询所述特征序列的缓冲区列表,以获得所述字符串指定的资源和/或操作。

2.根据权利要求1所述方法,其特征在于,所述方法还包括:若所述特征序列仅对应一个哈希序列,则所述终端设备的操作系统内核从所述配置表中获得所述字符串指定的资源和/或操作。

3.根据权利要求2所述方法,其特征在于,所述缓冲区列表存储所述对应多于一个哈希序列的特征序列所对应的多个哈希序列与字符串指定的资源和/或操作的对应关系。

4.一种操作系统内部的通信设备,其特征在于,包括:

第一运算子单元,用于对字符串进行哈希运算得到哈希序列;

第二运算子单元,用于对所述哈希序列进行二次哈希运算得到次哈希序列,将所述次哈希序列作为特征序列;

传递单元,用于将所述特征序列传递给所述通信设备的操作系统内核;

遍历子单元,用于根据所述特征序列遍历配置表,以确定所述特征序列是否对应多于一个哈希序列;所述配置表为以所述通信设备的应用层发送给所述通信设备的操作系统内核的字符串的特征序列为索引建立的配置表,所述配置表包含所述特征序列与所述字符串指定的资源和/或操作的对应关系;

请求子单元,用于当所述特征序列对应多于一个哈希序列时,向所述通信设备的应用层请求所述对字符串进行哈希运算得到的哈希序列;

接收子单元,用于接收所述通信设备的应用层发送的所述对字符串进行哈希运算得到的哈希序列;

查询子单元,用于根据所述对字符串进行哈希运算得到的哈希序列查询所述特征序列的缓冲区列表,以获得所述字符串指定的资源和/或操作。

5.根据权利要求4所述的设备,其特征在于,所述设备还包括:第二查询单元,用于当所述特征序列仅对应一个哈希序列时,从所述配置表中获得所述字符串指定的资源和/或操作。

6.根据权利要求5所述的设备,其特征在于,所述缓冲区列表存储所述对应多于一个哈希序列的特征序列所对应的多个哈希序列与字符串指定的资源和/或操作的对应关系。

7.一种终端设备,包括:处理器和存储器,其中所述处理器用于执行权利要求1至3任意一项所述的方法。

说明书 :

一种操作系统内部的通信方法及设备

技术领域

[0001] 本发明涉及通信技术领域,尤其涉及一种操作系统内部的通信方法及设备。

背景技术

[0002] 随着操作系统理论的不断发展成熟,操作系统的体系结构不断优化,为终端设备提高资源利用率、增强综合性能发挥着功不可没的作用。在操作系统理论中,可将系统结构大致区分为底层硬件、操作系统内核和上层应用层三层的体系结构,操作系统内核作为硬件与应用之间沟通的桥梁。
[0003] 在操作系统中,应用层和操作系统内核间的交互可以通过多种方式,如sysfs、procfs、系统调用等,交互时的数据传递大多以明文的方式进行。
[0004] 第三方监控软件监听到操作系统内核与应用层之间的交互数据所使用的明文,会造成用户的信息泄露,安全性较低。

发明内容

[0005] 本发明实施例提供了一种操作系统内部的通信方法与设备,用于防止应用层和操作系统内核间的交互被第三方软件监控而泄露用户信息,并且实现通信过程的算法复杂度低、节省时间。
[0006] 本发明实施例第一方面公开了一种操作系统内部的通信方法,包括:
[0007] 终端设备的应用层对字符串进行哈希运算得到特征序列;
[0008] 所述终端设备的应用层将所述特征序列传递给所述终端设备的操作系统内核;
[0009] 所述终端设备的操作系统内核根据所述特征序列查询配置表以找到所述字符串指定的资源和/或操作。
[0010] 作为一种可选的实施方式,所述终端设备的应用层对字符串进行哈希运算得到特征序列,包括:
[0011] 所述终端设备的应用层对字符串进行哈希运算得到哈希序列;
[0012] 所述终端设备的应用层对所述哈希序列进行二次哈希运算得到次哈希序列,将所述次哈希序列作为所述特征序列。
[0013] 作为一种可选的实施方式,所述配置表为以所述终端设备的应用层发送给所述终端设备的操作系统内核的字符串的特征序列为索引建立的配置表,所述配置表包含所述特征序列与所述字符串指定的资源和/或操作的对应关系。
[0014] 作为一种可选的实施方式,所述终端设备的操作系统内核根据所述特征序列查询配置表以找到所述字符串指定的资源和/或操作,包括:
[0015] 所述终端设备的操作系统内核根据所述特征序列遍历所述配置表,以确定所述特征序列是否对应多于一个哈希序列;
[0016] 若所述特征序列对应多于一个哈希序列,则所述终端设备的操作系统内核向所述终端设备的应用层请求所述对字符串进行哈希运算得到的哈希序列;
[0017] 所述终端设备的操作系统内核接收所述终端设备的应用层发送的所述对字符串进行哈希运算得到的哈希序列;
[0018] 所述终端设备的操作系统内核根据所述对字符串进行哈希运算得到的哈希序列查询所述特征序列的缓冲区列表,以获得所述字符串指定的资源和/或操作。
[0019] 作为一种可选的实施方式,所述方法还包括:
[0020] 若所述特征序列仅对应一个哈希序列,则所述终端设备的操作系统内核从所述配置表中获得所述字符串指定的资源和/或操作。
[0021] 作为一种可选的实施方式,所述缓冲区列表存储所述对应多于一个哈希序列的特征序列所对应的多个哈希序列与字符串指定的资源和/或操作的对应关系。
[0022] 本发明实施例第二方面公开了一种操作系统内部的通信设备,包括:
[0023] 运算单元,用于对字符串进行哈希运算得到特征序列;
[0024] 传递单元,用于将所述特征序列传递给所述终端设备的操作系统内核;
[0025] 第一查询单元,用于根据所述特征序列查询配置表以找到所述字符串指定的资源和/或操作。
[0026] 作为一种可选的实施方式,所述运算单元,包括:
[0027] 第一运算子单元,用于对字符串进行哈希运算得到哈希序列;
[0028] 第二运算子单元,用于对所述哈希序列进行二次哈希运算得到次哈希序列,将所述次哈希序列作为所述特征序列。
[0029] 作为一种可选的实施方式,所述配置表为以所述终端设备的应用层发送给所述终端设备的操作系统内核的字符串的特征序列为索引建立的配置表,所述配置表包含所述特征序列与所述字符串指定的资源和/或操作的对应关系。
[0030] 作为一种可选的实施方式,所述查询单元,包括:
[0031] 遍历子单元,所述特征序列遍历所述配置表,以确定所述特征序列是否对应多于一个哈希序列;
[0032] 请求子单元,用于当所述特征序列对应多于一个哈希序列时,向所述终端设备的应用层请求所述对字符串进行哈希运算得到的哈希序列;
[0033] 接收子单元,用于接收所述终端设备的应用层发送的所述对字符串进行哈希运算得到的哈希序列;
[0034] 查询子单元,用于根据所述对字符串进行哈希运算得到的哈希序列查询所述特征序列的缓冲区列表,以获得所述字符串指定的资源和/或操作。
[0035] 作为一种可选的实施方式,所述设备还包括:
[0036] 第二查询单元,用于当所述特征序列仅对应一个哈希序列时,从所述配置表中获得所述字符串指定的资源和/或操作。
[0037] 作为一种可选的实施方式,所述缓冲区列表存储所述对应多于一个哈希序列的特征序列所对应的多个哈希序列与字符串指定的资源和/或操作的对应关系。
[0038] 本发明实施例第三方面公开了一种终端设备,包括:处理器和存储器,其中所述处理器用于执行本发明实施例公开的任意一项所述的方法。
[0039] 从以上技术方案可以看出,本发明实施例具有以下优点:
[0040] 本发明实施例中,终端设备的应用层传递给操作系统内核的特征序列为原本需要传递的字符串经过哈希运算所得,由于哈希运算的不可逆性,第三方软件即使监听到了应用层和操作系统内核间通信的特征序列,也无法获得原本的字符串,因而可以起到保护用户信息不被泄露的作用;与此同时,哈希运算为一种快速的算法,可以将不定长的较长序列压缩为定长、较短的序列,在操作系统内核根据特征序列查找所述字符串指定的资源和/或操作时,利用哈希运算后的较短特征序列进行查询可以帮助降低运算复杂度,节省时间。

附图说明

[0041] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0042] 图1为本发明实施例公开的一种操作系统内部的通信方法的流程示意图;
[0043] 图2为本发明实施例公开的另一种操作系统内部的通信方法的流程示意图;
[0044] 图3为本发明实施例公开的一种操作系统内部的通信设备的结构示意图;
[0045] 图4为本发明实施例公开的另一种操作系统内部的通信设备的结构示意图;
[0046] 图5为本发明实施例公开的一种终端设备的结构示意图;
[0047] 图6为本发明实施例公开的另一种终端设备的结构示意图。

具体实施方式

[0048] 为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0049] 本发明实施例提供了一种操作系统内部的通信方法与设备,用于防止应用层和操作系统内核间的交互被第三方软件监控而泄露用户信息,并且实现通信过程的算法复杂度低、节省时间。以下分别进行详细说明。
[0050] 请参阅图1,图1为本发明实施例公开的一种操作系统内部的通信方法的流程示意图。其中,图1所示的操作系统内部的通信方法可以包括以下步骤:
[0051] 101、终端设备的应用层对字符串进行哈希运算得到特征序列。
[0052] 本发明实施例中,终端设备可以是各种可存储数据的终端设备,如智能手机、数码相机、智能可穿戴设备、个人数字助理(Personal Digital Assistant,PDA)、销售终端(Point of Sales,POS)等,本发明实施例后续不作复述。
[0053] 操作系统内核与应用层间的交互,大多通过明文进行,即应用层发送字符串至操作系统内核,操作系统内核根据字符串找到指定的资源或进行相应的操作。而哈希运算可以将任意长度的二进制值映射为较短的、固定长度的二进制值。即使原本需传递的字符串改变一个字母,经过哈希运算后产生的哈希序列都将为不同的值,因而可以用哈希序列来代表原本用于交互的字符串。
[0054] 本发明实施例中,终端设备的应用层对原本需传递给操作系统内核的字符串进行哈希运算,将得到的哈希序列作为特征序列,在之后的步骤中,通过传递该特征序列来代替传递明文字符串。常用的哈希算法有MD5(Message-Digest Algorithm 5,信息摘要算法5)、SHA-1(Secure Hash Algorithm 1,安全散列算法)等,均具有较好的压缩性、抗碰撞性和抗修改性,且计算简便。
[0055] 由于哈希运算具备不可逆的特点,即通过哈希序列,无法恢复得到原本运算前的字符串。因此,即使第三方软件获取了操作系统内核和应用层间传递的特征序列,也无法获知实际交互的信息内容,从而保护了用户的信息安全。
[0056] 作为一种可选的实施方式,将原本需传递的字符串转换为二进制后进行哈希运算,得到64比特固定长度的哈希序列,将该哈希序列作为特征序列。
[0057] 102、终端设备的应用层将上述特征序列传递给该终端设备的操作系统内核。
[0058] 本发明实施例中,终端设备的应用层将原本需传递的字符串进行哈希运算后得到特征序列,将该特征序列传递给操作系统内核。因为哈希运算可以将任意长度的二进制值映射为较短的、固定长度的二进制值,所以特征序列与原本需传递的字符串相比,长度较短且定长的特点使其更节省系统内存,有助于提高系统运行效率。
[0059] 103、终端设备的操作系统内核根据上述特征序列查询配置表以找到上述字符串指定的资源和/或操作。
[0060] 本发明实施例中,配置表为以终端设备的应用层发送给终端设备的操作系统内核的字符串的特征序列为索引建立的配置表,配置表包含特征序列与字符串指定的资源和/或操作的对应关系。
[0061] 作为一种可选的实施方式,终端设备的操作系统内核遍历配置表找到以上述特征序列作为索引的条目,执行该条目的指令,即原本的字符串指定的资源和/或操作。
[0062] 在图1所描述的方法中,终端设备的应用层和操作系统内核间传递的数据为哈希序列,由于哈希序列具有不可逆的特点,因而可以防止第三方软件监听到应用层与操作系统内核间的交互数据从而窃取用户信息。
[0063] 请参阅图2,图2为本发明实施例公开的另一种操作系统内部的通信方法的流程示意图。如图2所示,该方法可以包括以下步骤:
[0064] 201、终端设备的应用层对字符串进行哈希运算得到哈希序列。
[0065] 本发明实施例中,终端设备的应用层对原本需传递给操作系统内核的字符串进行哈希运算,在之后的步骤中,通过传递经过运算后的序列来代替传递明文字符串。常用的哈希算法有MD5(Message-Digest Algorithm 5,信息摘要算法5)、SHA-1(Secure Hash Algorithm 1,安全散列算法)等,均具有较好的压缩性、抗碰撞性和抗修改性,且计算简便。
[0066] 由于哈希运算具备不可逆的特点,即通过哈希序列,无法恢复得到原本运算前的字符串。因此,即使第三方软件获取了操作系统内核和应用层间传递的特征序列,也无法获知实际交互的信息内容,从而保护了用户的信息安全。
[0067] 作为一种可选的实施方式,将原本需传递的字符串转换为二进制后进行哈希运算,得到64比特固定长度的哈希序列。
[0068] 202、终端设备的应用层对上述哈希序列进行二次哈希运算得到次哈希序列,将该次哈希序列作为特征序列。
[0069] 本发明实施例中,将原本的字符串转化为二进制,经过一次哈希运算后得到的哈希序列为定长,常见的长度为64比特或128比特,虽然数据长度和原有长度相比得到了一定的压缩,但在操作系统内核执行配置表查找操作时,现有长度的哈希序列会带来极大的工作量。举例来说,先对字符串进行哈希运算得到64比特的哈希序列,假如直接用64比特的哈希序列作为索引,意味着检索范围是2^64,这是非常非常大的数量,几乎无法检索。因此,需要对哈希序列进行二次哈希运算得到次哈希序列,降低哈希序列的维度,将该次哈希序列作为特征序列。
[0070] 作为一种可选的实施方式,终端设备的应用层对步骤201中得到的64比特的哈希序列进行二次哈希运算得到次哈希序列,将该次哈希序列作为特征序列。该特征序列的长度为10比特或11比特,即检索范围由2^64降低至2^10或2^11,可以极大地提高检索效率。
[0071] 需要补充的是,对于二次哈希运算降低维度的过程,肯定会出现重复的哈希值,对于重复项用缓冲区列表来管理,以防出现信息丢失。
[0072] 203、终端设备的应用层将上述特征序列传递给该终端设备的操作系统内核。
[0073] 本发明实施例中,终端设备的应用层将原本需传递的字符串进行两次哈希运算后得到特征序列,将该特征序列传递给操作系统内核。因为哈希运算可以将任意长度的二进制值映射为较短的、固定长度的二进制值,所以特征序列与原本需传递的字符串相比,长度较短且定长的特点使其更节省系统内存,有助于提高系统运行效率。
[0074] 204、终端设备的操作系统内核根据上述特征序列遍历配置表,以确定上述特征序列是否对应多于一个哈希序列;如果是,执行步骤205~207;如果否,执行步骤208。
[0075] 本发明实施例中,配置表为以终端设备的应用层发送给终端设备的操作系统内核的字符串的特征序列为索引建立的配置表,配置表包含特征序列与字符串指定的资源和/或操作的对应关系。对于二次哈希运算降低维度的过程,肯定会出现重复的哈希值,即出现特征序列与计算得到特征序列的哈希序列之间的一对多现象,因此需要遍历配置表,以确定该特征序列是否对应与多个哈希序列。在之后的步骤中,若该特征序列对应多个哈希序列,则需要通过进一步查询缓冲区列表来确定原本字符串所指定的资源和/或操作。
[0076] 205、终端设备的操作系统内核向该终端设备的应用层请求上述对字符串进行哈希运算得到的哈希序列。
[0077] 本发明实施例中,若特征序列对应多于一个哈希序列,则通过特征序列无法查询到唯一的字符串所指定的资源和/或操作,即无法确定原本的字符串所指定的资源和/或操作。因而需要向终端设备的应用层请求用于计算得到该特征序列的哈希序列,通过哈希序列与字符串所指定的资源和/或操作的一对一关系来完成查询过程。
[0078] 206、终端设备的操作系统内核接收该终端设备的应用层发送的上述对字符串进行哈希运算得到的哈希序列。
[0079] 207、终端设备的操作系统内核根据上述对字符串进行哈希运算得到的哈希序列查询上述特征序列的缓冲区列表,以获得上述字符串指定的资源和/或操作。
[0080] 本发明实施例中,上述缓冲区列表存储对应多于一个哈希序列的特征序列所对应的多个哈希序列与字符串指定的资源和/或操作的对应关系。因而利用哈希序列查询缓冲区列表,即可确定原本的字符串所指定的资源和/或操作。
[0081] 208、终端设备的操作系统内核从上述配置表中获得上述字符串指定的资源和/或操作。
[0082] 本发明实施例中,若上述特征序列仅对应于一个哈希序列,即通过该特征序列在配置表即可查找到唯一的、原本的字符串所指定的资源和/或操作。
[0083] 在图2所描述的方法中,将原本的字符串通过两次哈希运算得到极短的次哈希序列,将该次哈希序列作为特征序列。在终端设备的操作系统内核利用特征序列查找字符串所对应的资源和/或操作时,由于特征序列维度很低,因而查找范围较小,从而节省系统的运算资源和时间。
[0084] 请参阅图3,图3为本发明实施例公开的一种操作系统内部的通信设备的结构示意图。如图3所示,该设备可以包括:
[0085] 运算单元301,用于对字符串进行哈希运算得到特征序列。
[0086] 操作系统内核与应用层间的交互,大多通过明文进行,即应用层发送字符串至操作系统内核,操作系统内核根据字符串找到指定的资源或进行相应的操作。而哈希运算可以将任意长度的二进制值映射为较短的、固定长度的二进制值。即使原本需传递的字符串改变一个字母,经过哈希运算后产生的哈希序列都将为不同的值,因而可以用哈希序列来代表原本用于交互的字符串。
[0087] 本发明实施例中,运算单元301对原本需传递给操作系统内核的字符串进行哈希运算,将得到的哈希序列作为特征序列,在之后的步骤中,通过传递该特征序列来代替传递明文字符串。常用的哈希算法有MD5(Message-Digest Algorithm 5,信息摘要算法5)、SHA-1(Secure Hash Algorithm 1,安全散列算法)等,均具有较好的压缩性、抗碰撞性和抗修改性,且计算简便。
[0088] 由于哈希运算具备不可逆的特点,即通过哈希序列,无法恢复得到原本运算前的字符串。因此,即使第三方软件获取了操作系统内核和应用层间传递的特征序列,也无法获知实际交互的信息内容,从而保护了用户的信息安全。
[0089] 作为一种可选的实施方式,运算单元301将原本需传递的字符串转换为二进制后进行哈希运算,得到64比特固定长度的哈希序列,将该哈希序列作为特征序列。
[0090] 传递单元302,用于将特征序列传递给终端设备的操作系统内核。
[0091] 本发明实施例中,运算单元301将原本需传递的字符串进行哈希运算后得到特征序列,传递单元302将该特征序列传递给操作系统内核。因为哈希运算可以将任意长度的二进制值映射为较短的、固定长度的二进制值,所以特征序列与原本需传递的字符串相比,长度较短且定长的特点使其更节省系统内存,有助于提高系统运行效率。
[0092] 第一查询单元303,用于根据特征序列查询配置表以找到字符串指定的资源和/或操作。
[0093] 本发明实施例中,配置表为以终端设备的应用层发送给终端设备的操作系统内核的字符串的特征序列为索引建立的配置表,配置表包含特征序列与字符串指定的资源和/或操作的对应关系。
[0094] 作为一种可选的实施方式,第一查询单元303遍历配置表找到以上述特征序列作为索引的条目,执行该条目的指令,即原本的字符串指定的资源和/或操作。
[0095] 利用图3所描述的设备,终端设备的应用层和操作系统内核间传递的数据为哈希序列,由于哈希序列具有不可逆的特点,因而可以防止第三方软件监听到应用层与操作系统内核间的交互数据从而窃取用户信息。
[0096] 请一并参阅图4,图4为本发明实施例公开的另一种操作系统内部的通信设备的结构示意图。其中,图4所示的设备是由图3所示的设备进行优化得到的,与图3所示的设备相比,在图4所示的设备中,运算单元301包括:
[0097] 第一运算子单元3011,用于对字符串进行哈希运算得到哈希序列。
[0098] 作为一种可选的实施方式,第一运算子单元3011将原本需传递的字符串转换为二进制后进行哈希运算,得到64比特固定长度的哈希序列。
[0099] 第二运算子单元3012,用于对哈希序列进行二次哈希运算得到次哈希序列,将次哈希序列作为特征序列。
[0100] 本发明实施例中,将原本的字符串转化为二进制,经过一次哈希运算后得到的哈希序列为定长,常见的长度为64比特或128比特,虽然数据长度和原有长度相比得到了一定的压缩,但在操作系统内核执行配置表查找操作时,现有长度的哈希序列会带来极大的工作量。举例来说,先对字符串进行哈希运算得到64比特的哈希序列,假如直接用64比特的哈希序列作为索引,意味着检索范围是2^64,这是非常非常大的数量,几乎无法检索。因此,需要对哈希序列进行二次哈希运算得到次哈希序列,降低哈希序列的维度,将该次哈希序列作为特征序列。
[0101] 作为一种可选的实施方式,第二运算子单元3012对第一运算子单元3011得到的64比特的哈希序列进行二次哈希运算得到次哈希序列,将该次哈希序列作为特征序列。该特征序列的长度为10比特或11比特,即检索范围由2^64降低至2^10或2^11,可以极大地提高检索效率。
[0102] 需要补充的是,对于二次哈希运算降低维度的过程,肯定会出现重复的哈希值,对于重复项用缓冲区列表来管理,以防出现信息丢失。
[0103] 作为一种可选的实施方式,如图4所示,第一查询单元303可以包括:
[0104] 遍历子单元3031,用于根据特征序列遍历配置表,以确定特征序列是否对应多于一个哈希序列。
[0105] 本发明实施例中,配置表为以终端设备的应用层发送给终端设备的操作系统内核的字符串的特征序列为索引建立的配置表,配置表包含特征序列与字符串指定的资源和/或操作的对应关系。对于二次哈希运算降低维度的过程,肯定会出现重复的哈希值,即出现特征序列与计算得到特征序列的哈希序列之间的一对多现象,因此需要遍历子单元3031遍历配置表,以确定该特征序列是否对应与多个哈希序列。在之后的步骤中,若该特征序列对应多个哈希序列,则需要通过进一步查询缓冲区列表来确定原本字符串所指定的资源和/或操作。
[0106] 请求子单元3032,用于当特征序列对应多于一个哈希序列时,向终端设备的应用层请求对字符串进行哈希运算得到的哈希序列。
[0107] 本发明实施例中,若特征序列对应多于一个哈希序列,则通过特征序列无法查询到唯一的字符串所指定的资源和/或操作,即无法确定原本的字符串所指定的资源和/或操作。因而需要请求子单元3032向终端设备的应用层请求用于计算得到该特征序列的哈希序列,通过哈希序列与字符串所指定的资源和/或操作的一对一关系来完成查询过程。
[0108] 接收子单元3033,用于接收终端设备的应用层发送的对字符串进行哈希运算得到的哈希序列。
[0109] 查询子单元3034,用于根据对字符串进行哈希运算得到的哈希序列查询特征序列的缓冲区列表,以获得字符串指定的资源和/或操作。
[0110] 本发明实施例中,上述缓冲区列表存储对应多于一个哈希序列的特征序列所对应的多个哈希序列与字符串指定的资源和/或操作的对应关系。因而查询子单元3034利用哈希序列查询缓冲区列表,即可确定原本的字符串所指定的资源和/或操作。
[0111] 作为一种可选的实施方式,如图4所示,该设备还可以包括:
[0112] 第二查询单元304,用于当特征序列仅对应一个哈希序列时,从配置表中获得字符串指定的资源和/或操作。
[0113] 本发明实施例中,若上述特征序列仅对应于一个哈希序列,即第二查询单元304通过该特征序列在配置表即可查找到唯一的、原本的字符串所指定的资源和/或操作。
[0114] 通过图4所描述的设备,可以将原本的字符串通过两次哈希运算得到极短的次哈希序列,将该次哈希序列作为特征序列。在终端设备的操作系统内核利用特征序列查找字符串所对应的资源和/或操作时,由于特征序列维度很低,因而查找范围较小,从而节省系统的运算资源和时间。
[0115] 请参阅图5,图5为本发明实施例公开的一种终端设备的结构示意图。如图5所示,该终端设备包括:处理器501以及存储器502;其中存储器502可以用于处理器501执行数据处理所需要的缓存,还可以用于提供处理器501执行数据处理调用的数据以及获得的结果数据的存储空间。
[0116] 在本发明实施例中,处理器501通过调用存储于存储器502中的哈希算法和配置表,用于执行以下操作:
[0117] 将原本的字符串进行哈希运算得到特征序列;
[0118] 将该特征序列传递给操作系统内核;
[0119] 利用该特征序列查询配置表以找到原本的字符串指定的资源和/或操作。
[0120] 本发明实施例中,处理器501将原本的字符串转化为二进制,经过一次哈希运算后得到的哈希序列为定长,常见的长度为64比特或128比特,虽然数据长度和原有长度相比得到了一定的压缩,但在处理器501执行配置表查找操作时,现有长度的哈希序列会带来极大的工作量。举例来说,先对字符串进行哈希运算得到64比特的哈希序列,假如直接用64比特的哈希序列作为索引,意味着检索范围是2^64,这是非常非常大的数量,几乎无法检索。因此,需要对哈希序列进行二次哈希运算得到次哈希序列,降低哈希序列的维度,将该次哈希序列作为特征序列。
[0121] 因此,作为一种可选的实施方式,处理器501通过调用存储于存储器502中的哈希算法、配置表和缓冲区列表,用于执行以下操作:
[0122] 对字符串进行哈希运算得到哈希序列;
[0123] 对上述哈希序列进行二次哈希运算得到次哈希序列,将该次哈希序列作为特征序列;
[0124] 根据上述特征序列遍历配置表,以确定上述特征序列是否对应多于一个哈希序列;
[0125] 若上述特征序列对应多于一个哈希序列,则向应用层请求上述对字符串进行哈希运算得到的哈希序列;
[0126] 接收应用层发送的上述对字符串进行哈希运算得到的哈希序列;
[0127] 根据上述对字符串进行哈希运算得到的哈希序列查询上述特征序列的缓冲区列表,以获得上述字符串指定的资源和/或操作。
[0128] 需要补充的是,若上述特征序列仅对应于一个哈希序列,则通过该特征序列在配置表即可查找到唯一的、原本的字符串所指定的资源和/或操作。
[0129] 图5所示的终端设备中,终端设备的应用层传递给操作系统内核的特征序列为原本需要传递的字符串经过哈希运算所得,由于哈希运算的不可逆性,第三方软件即使监听到了应用层和操作系统内核间通信的特征序列,也无法获得原本的字符串,因而可以起到保护用户信息不被泄露的作用;与此同时,哈希运算为一种快速的算法,可以将不定长的较长序列压缩为定长、较短的序列,在操作系统内核根据特征序列查找字符串指定的资源和/或操作时,利用哈希运算后的较短特征序列进行查询可以帮助降低运算复杂度,节省时间。
[0130] 请参阅图6,图6为本发明实施例公开的另一种终端设备的结构示意图。如图6所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该终端可以为包括手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑等任意终端设备,以终端为手机为例:
[0131] 图6示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图6,手机包括:射频(Radio Frequency,RF)电路601、存储器602、输入单元603、显示单元604、传感器605、音频电路606、无线保真(wireless fidelity,WiFi)模块607、处理器608、以及电源609等部件。本领域技术人员可以理解,图6中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0132] 下面结合图6对手机的各个构成部件进行具体的介绍:
[0133] RF电路601可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器608处理;另外,将设计上行的数据发送给基站。通常,RF电路601包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。此外,RF电路601还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobile communication,GSM)、通用分组无线服务(General Packet Radio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
[0134] 存储器602可用于存储软件程序以及模块,处理器608通过运行存储在存储器602的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0135] 输入单元603可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元603可包括触控面板6031以及其他输入设备6032。触控面板6031,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板6031上或在触控面板6031附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板6031可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器608,并能接收处理器608发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板6031。除了触控面板6031,输入单元603还可以包括其他输入设备6032。具体地,其他输入设备6032可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
[0136] 显示单元604可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元604可包括显示面板6041,可选的,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板6041。进一步的,触控面板6031可覆盖显示面板6041,当触控面板6031检测到在其上或附近的触摸操作后,传送给处理器608以确定触摸事件的类型,随后处理器608根据触摸事件的类型在显示面板6041上提供相应的视觉输出。虽然在图6中,触控面板6031与显示面板6041是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板6031与显示面板6041集成而实现手机的输入和输出功能。
[0137] 手机还可包括至少一种传感器605,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板6041的亮度,接近传感器可在手机移动到耳边时,关闭显示面板
6041和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
[0138] 音频电路606、扬声器6061,传声器6062可提供用户与手机之间的音频接口。音频电路606可将接收到的音频数据转换后的电信号,传输到扬声器6061,由扬声器6061转换为声音信号输出;另一方面,传声器6062将收集的声音信号转换为电信号,由音频电路606接收后转换为音频数据,再将音频数据输出处理器608处理后,经RF电路601以发送给比如另一手机,或者将音频数据输出至存储器602以便进一步处理。
[0139] WiFi属于短距离无线传输技术,手机通过WiFi模块607可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图6示出了WiFi模块607,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
[0140] 处理器608是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器602内的软件程序和/或模块,以及调用存储在存储器602内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器608可包括一个或多个处理单元;优选的,处理器608可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器608中。
[0141] 手机还包括给各个部件供电的电源609(比如电池),优选的,电源可以通过电源管理系统与处理器608逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
[0142] 尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
[0143] 前述实施例中,各步骤方法流程可以基于该终端设备的结构实现。其中应用层和操作系统内核均可视为处理器608的抽象化结构的组成部分。
[0144] 值得注意的是,上述操作系统内部的通信设备实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0145] 另外,本领域普通技术人员可以理解实现上述各方法实施例中的全部或部分步骤是可以通过程序来指令相关的硬件完成,相应的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0146] 以上仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。