一种短信信息提取与分析方法与流程

文档序号:12626614阅读:614来源:国知局
一种短信信息提取与分析方法与流程

本发明属于智能手机和信息处理领域,尤其涉及一种智能手机中的一种短信信息提取与分析方法。



背景技术:

近些年来,随着智能手机和移动互联网的发展,手机成为人们生活中的一个重要工具,由于手机号的唯一性,手机也成为了认证个人身份的一个工具。因此,常常使用手机短信作为对个人的一种准确通信手段,例如:各种验证码短信、银行消费信息短信、快递的通知短信等等。但是,大量的此类短信虽然不是垃圾短信,也会使用户手机被淹没在短信海洋中,从而使用户忽略了真正重要的短信。基于上述原因,现在用户通常需要对短信进行提取和整理。

目前,在短信提取分析相关领域内,仅有少部分定制手机ROM具有验证码识别等简单提取功能,而且仅适用于特定手机厂商的手机,不具备普适性。不仅如此,针对短信的操作多集中在简单的消息提取上,并没有针对不同类型的短信,不同来源不同功能的短信进行细致的划分和特殊处理。因此,用户仍然被大量特定类型的定制短信所困扰。



技术实现要素:

为了解决现有技术中的上述问题,本发明提出了一种短信信息提取与分析方法,该方法采用正则表达式作为短信匹配的方式,对短信进行匹配和识别。

本发明采用的技术方案如下:

一种短信信息提取与分析方法,该方法包括如下步骤:

步骤100:获取一条待分析的短信记录;

步骤200:根据数据库中的号码记录,对所述短信记录进行号码匹配,确定该短信记录的发件人;如果未能匹配到号码,则不对该短信进行分析,返回步骤100;

步骤300:根据该短信记录的发件人,从数据库查询获取该发件人的短信的正则表达式;

步骤400:基于步骤300获取的所有正则表达式,逐一对待分析的短信进行匹配,如果没有一个正则表达式可匹配该短信,则放弃对短信的分析,返回步骤100;如果找到一个正则表达式可匹配该短信,则根据该正则表达式,提取短信中的关键信息。

步骤500:将提取出的短信中的关键信息及其发件人关联存储在数据库中;

步骤600:对数据库中存储的所述关键信息进行统计分析,并展示统计分析结果。

进一步地,还根据下述步骤对数据库中的正则表达式及相关发件人、号码等信息进行更新:

(1)设置一台更新服务器,每一台需要更新的手机都预先在该更新服务器进行登记,登记信息包括手机号码,每一台需要更新的手机上都存储了该更新服务器的数字证书;

(2)当需要更新信息时,更新服务器将更新信息和当前日期按照预定义的格式进行打包,获得更新信息包;

(3)对于在更新服务器上登记的一个手机号码P,更新服务器计算

PM=P mod 256;将更新信息包的每个字节与该PM进行异或,从而获得了一个异或后的第二更新信息包;

(4)更新服务器使用其数字证书私钥对该第二更新信息包进行数字签名;

(5)更新服务器对所述第二更新信息包进行Base64编码,将得到的编码结果作为第一短信发送给手机号码P;

(6)更新服务器对步骤4得到的数字签名进行Base64编码,将编码结果作为第二短信发送给手机号码P;

(7)更新服务器对每个登记的手机号码重复步骤3-6,以向每个登记的手机号码发送第一短信和第二短信;

(8)当一台手机收到上述第一短信和第二短信后,如果发现这两条短信的发件人号码是更新服务器的号码,则对两条短信进行Base64解码,获得第二更新信息包和数字签名;

(9)所述手机使用更新服务器的数字证书,对步骤8获取的第二更新信息包和数字签名进行签名验证,如果验证不通过,则忽略则两台短信,否则继续后续步骤;

(10)所述手机基于自身的手机号码P,计算PM=P mod 256;然后将步骤8获得第二更新信息包的每个字节与该PM进行异或,从而获得原始的更新信息包;

(11)所述手机使用预定义的格式解析该更新信息包的内容,获得更新信息及更新信息包中的日期信息;验证该日期信息与当前日期的差是否大于预定阈值,如果大于,则忽略该更新信息包;如果不大于,则基于获取的更新信息更新数据库。

进一步地,步骤100中的待分析的短信记录通过以下方式之一获得:

从手机短信数据库中读取一条短信记录;

使用拦截短信机制,拦截获取手机收到的新短信。

进一步地,所述更新信息包括以下三种信息之一:

为某个已有的发件人增加新的正则表达式;

为某个已有的发件人增加新的号码;

增加新的发件人及其号码、正则表达式。

进一步地,每个更新信息包只包括一条更新信息。

进一步地,所述PM由更新服务器预先计算。

本发明的有益效果包括:提供可靠的,安全的,多样的,完整的短信信息提取与分析方法,短信匹配的扩展性强,具有广泛适用性,整个流程无需手动参与,具有智能化和现代化的特点。

【附图说明】

此处所说明的附图是用来提供对本发明的进一步理解,构成本申请的一部分,但并不构成对本发明的不当限定,在附图中:

图1是本发明短信信息提取与分析方法的流程图。

图2是本发明短信信息分析的一个统计图表的实施例。

【具体实施方式】

下面将结合附图以及具体实施例来详细说明本发明,其中的示意性实施例以及说明仅用来解释本发明,但并不作为对本发明的限定。

本发明的实施例运作于Android手机平台,其主要思想是:根据约定的正则表达式,从短信文本中智能提取关键信息,优化信息展示方式,进行相关统计操作,整个过程无需用户手动参与。

参见附图1,其示出了本发明的短信信息提取和分析方法的基本流程,该流程包括如下步骤:

步骤100:获取一条待分析的短信记录。

本发明的短信信息提取和分析方法可以针对旧短信,也可以针对新短信,因此步骤100中获取的待分析的短信实际上有两个数据来源:一个是从手机的短信数据库中读取一条短信记录;另一个是使用拦截短信机制,拦截手机收到的每一条新短信。基于Android手机的开放平台,使用本发明的方法所实现的手机系统一方面可以读取手机的短信数据库,另一方面可以在后台运行一个短信拦截程序,以拦截收到的新短信。基于这两个数据来源,步骤100可以获取每一条旧短信和新短信,以完成后续步骤。

步骤200:根据数据库中的号码记录,对所述短信记录进行号码匹配,确定该短信记录的发件人;如果未能匹配到号码,则不对该短信进行分析,返回步骤100。

每条短信记录都有一个发送短信的号码,这个号码是和短信发件人相对应的,附图1中给出了几个例子,包括建设银行的号码是95533,工商银行的号码是95588等等。同一发件人也可能具有不同的号码,这些号码与发件人关联存储在数据库的号码记录中。因此,通过分析短信记录的发件人号码,可以确认短信的发件人,这是从短信中提取的第一个信息。但是,本发明只对特定发件人的短信进行分析,例如各个银行、快递、火车票订票网站等等,对于普通日常短信不进行处理,因此数据库中的号码记录只包括了需要进行短信分析的号码,如果短信发件人的号码不在数据库的号码记录内,就不对其进行分析,从而返回步骤100以处理下一条短信。

步骤300:根据该短信记录的发件人,从数据库查询获取该发件人的短信的正则表达式。

每个发件人所发送的短信可能具有不同的类型,以银行为例,其发送的短信可能是消费短信,也可能是账户金额变更短信。但是,对于每一种类型的短信,其短信格式通常是固定的,因此可以为每一种类型的短信,确定一个与其格式对应的正则表达式,这些正则表示式预先与发件人关联存储在数据库中,因而步骤300可以根据发件人获取该发件人对应的所有正则表达式。

步骤400:基于步骤300获取的正则表达式,逐一对待分析的短信进行匹配,如果没有一个正则表达式可匹配该短信,则放弃对短信的分析,返回步骤100;如果找到一个正则表达式可匹配该短信,则根据该正则表达式,提取短信中的关键信息。

附图1中示出了关键信息的三个例子:第一个例子是从银行消费短信中提取出的交易卡号、交易时间、交易金额和交易明细;第二个例子是从银行账户余额查询回执短信中提取的交易卡号、交易时间、交易金额和账户余额;第三个例子是从快递短信中提取的订单号、配送时间和取货号。这些关键信息都是通过正则表达式对短信格式进行匹配,提取出来的。

步骤500:将提取出的短信中的关键信息及其发件人关联存储在数据库中。

在把关键信息提取出来之后,存储在数据库中,这样后续就可以基于这些信息进行进一步的统计分析。

步骤600:对数据库中存储的所述关键信息进行统计分析,并展示统计分析结果。

由于提取出的关键信息都是统一的结构化内容,因此统计分析就非常容易进行,附图2示出了一个统计图表的例子,其对每个月的银行消费明细进行了统计分析,并通过软件界面展示统计图表。本发明不对具体的统计分析和图表展示方法做出限制,本领域技术人员可以理解,基于上述获取的关键信息,可以进行各种本领域中公知的统计和分析过程。

在上述短信信息提取过程中,正则表达式是提取短信的核心工具,它反映了短信的正确格式。但是,短信格式是可能随着时间变化的。一方面,每个发件人号码所发送的短信格式是可能发生变化的,另一方面,可能会出现新的发件人号码(包括新发件人的号码,或者旧发件人的新号码),新的号码通常会带来新的短信格式。因此,正则表达式及其关联的发件人、号码是需要更新的。

现有技术中一种常见的更新方法是网络更新,即可以在手机上网时,向网络上的更新服务器查询并下载新的正则表达式。但是,一方面,网络更新需要耗费网络流量,另一方面,有些时候手机可能并不具有能够上网的环境。因此,本发明提出了一种新的正则表达式及相关发件人、号码的更新方法,该方法可以通过短信进行更新,只要手机能够接收短信,就可以进行相关更新。

更新的具体步骤如下:

(1)设置一台更新服务器,每一台需要更新的手机都预先在该更新服务器进行登记,登记信息包括手机号码,每一台需要更新的手机上都存储了该更新服务器的数字证书。

(2)当需要更新信息时,更新服务器将更新信息和当前日期按照预定义的格式进行打包,获得更新信息包。

这里的更新信息可能有多种情况,包括:为某个已有的发件人增加新的正则表达式;为某个已有的发件人增加新的号码;增加新的发件人及其号码、正则表达式。无论是哪种更新信息,都可以预先定义好打包格式,将该更新信息按照该打包格式进行打包。为了可以使用短信进行更新,每个更新信息包只打包一条更新信息。将当期日期也加入更新信息包是为了保证更新信息包的时效性和安全性,避免一条更新信息被人恶意重复发送。

(3)对于在更新服务器上登记的一个手机号码P,更新服务器计算其模256的值,即计算PM=P mod 256;因此该PM的位数不超过8,即限制在了一个字节以内。将更新信息包的每个字节与该PM进行异或,从而获得了一个异或后的第二更新信息包。

通过上述步骤3的异或过程,将更新信息包的数据隐藏了起来,并且对于不同的手机号码,异或后得到的第二更新信息包都不相同,则进一步提高了安全性。另外,步骤3中所使用的PM对每个手机号码而言是固定不变的,因此在实际应用中可以事先计算好各个PM

(4)更新服务器使用自己的数字证书的私钥对该第二更新信息包进行数字签名。

之所以使用数字签名,是为了保证更新信息的安全性,以防止有人冒充更新服务器,损害手机安全,由于对每个手机号码,第二更新信息包都不相同,则其数字签名也不相同。

(5)更新服务器对所述第二更新信息包进行Base64编码,将得到的编码结果作为第一短信发送给手机号码P。

(6)更新服务器对步骤4得到的数字签名也进行Base64编码,将编码结果作为第二短信发送给手机号码P。

(7)更新服务器对每个登记的手机号码重复步骤3-6,使得每个登记的手机号码都可以接收到该第一短信和第二短信。

(8)当一台手机收到上述第一短信和第二短信后,如果发现这两条短信的发件人号码是更新服务器的号码,则对两条短信进行Base64解码,获得第二更新信息包和数字签名。

(9)所述手机使用更新服务器的数字证书,对步骤8获取的第二更新信息包和数字签名进行签名验证。如果验证不通过,则忽略则两台短信,否则继续后续步骤;

基于现在伪基站等攻击手段,单纯依靠号码判断更新服务器是不可靠的,因此本发明通过数字签名验证来保证更新的可靠性。

(10)所述手机基于自身的手机号码P,计算PM=P mod 256;然后将步骤8获得第二更新信息包的每个字节与该PM进行异或,从而获得原始的更新信息包。这一步骤实际上是步骤3的逆过程。

(11)所述手机使用预定义的格式解析该更新信息包的内容,获得更新信息及更新信息包中的日期信息;验证该日期信息与当前日期的差是否大于预定阈值,如果大于,说明该更新信息包已经过期,则忽略该更新信息包;如果不大于,则基于获取的更新信息更新数据库。

上述更新方法一方面保证了更新信息的安全性,防止冒充更新服务器,另一方面无需手机上网,可以在手机离线的情况下进行更新;使得本发明的短信提取与分析方法更加安全、可靠、及时。

以上所述仅是本发明的较佳实施方式,故凡依本发明专利申请范围所述的构造、特征及原理所做的等效变化或修饰,均包括于本发明专利申请范围内。

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