一种数据编码类型识别及转码方法和装置的制造方法

文档序号:9276849阅读:486来源:国知局
一种数据编码类型识别及转码方法和装置的制造方法
【技术领域】
[0001]本发明涉及网络安全技术,尤其涉及一种统一定位符(URL)数据的数据编码类型识别及转码方法和装置。
【背景技术】
[0002]随着网络技术的快速发展,越来越多的用户使用手机、计算机及平板电脑等设备上网,用户一般情况下会通过浏览器(如IE浏览器、Firefo浏览器及Chrome浏览器等)浏览网页或提交数据,或者采用网络应用软件(淘宝网软件、京东网软件以及当当网软件)提交数据。在网络安全和上网行为管理领域中,为了快速预防网络犯罪行为,常常需要获取并分析用户通过浏览器和应用软件所产生的网络数据,而大部分网络数据通常由UTF8和GB18030编码后经过URLENC0DE再次编码,其中,GB18030编码又包含GBK编码和GB2312编码;因此,在还原用户数据时,需要对网络数据进行URLDEC0DE解码,而解码后的用户数据通常为UTF8或GB18030编码不等,故此,如何有效和准确的识别用户数据的编码类型,将用户数据展现出来,是目前亟待解决的问题。
[0003]现有的网络数据编码识别方案主要限于以下几种:
[0004]I)在用户提交表单或下载数据时,数据报文中会带有charset字样,提取charset对应的编码类型可以对数据报文进行编解码,如果未提取到charset字样的编码类型,则会采用预先设定的编码类型对数据报文进行编解码。但是,针对没有charset字样的数据报文,在没有预设的编码类型或者预设的编码类型错误的情况下,会直接造成数据乱码;并且,上述方法需要定期的更新和维护预设地编码类型,维护成本高,准确率较低。
[0005]2)通过待编码网页的参考编码数组以及本地预设的备选编码数组,确定出包含在该参考编码数组和该备选编码数组中的一种编码类型作为待编码网页的编码类型;但这种获取数据编码类型的方法对参考编码数组和备选编码数组的依赖性较大,如果数据报文不符合该参考编码或备选编码的编码类型,则会造成数据乱码;且该方式依赖于浏览器,需要用户去选择“自动检测文字编码”选项,用户感知较强,无法达到无感知的自动检测文字编码,且需要不断的更新和维护参考编码数组和备选编码数组,成本较大。
[0006]3)通过将输入需要解码的URL字符串数按不同的编码方式进行解码,得到不同的URL字符串,再对这些不同的URL字符串按其对应的解码方式进行编码,将编码后不同的URL字符串与输入需要解码的编码后的URL字符串对比,如果编码后不同的URL字符串其中之一与输入需要解码的编码后的URL字符串相同,则输入需要解码的编码后的URL字符串的编码类型为前者的编码类型。但是,采用该编码类型识别方案,假如输入需要解码的URL字符串满足UTF8编码和GB18030编码重叠编码区间,或同时满足多种编码类型的编码范围,按照此方案中将该URL数据按多种解码方式解码,再按多种编码方式编码,则会出现多对原始URL字符串与再次编码后的数据一致的情况,当出现此情况时,将无法识别出正确的数据编码类型。
[0007]因此,目前的编码类型识别方案都存在明显的缺陷:准确率低,维护成本高,容易造成数据乱码。

【发明内容】

[0008]有鉴于此,本发明实施例期望提供一种数据编码类型识别及转码方法,能够提高数据编码识别的准确率,减少乱码,提高数据编码类型识别及转码效率,降低维护成本。
[0009]为达到上述目的,本发明的技术方案是这样实现的:
[0010]本发明实施例提供了一种数据编码类型识别及转码方法,所述方法包括:
[0011]提取用户操作产生的网络报文中的关键数据,对所述关键数据进行解码;
[0012]确定所述关键数据解码后的数据对应的编码类型;
[0013]根据所述编码类型,对所述关键数据解码后的数据进行转码。
[0014]上述方案中,所述提取用户操作产生的网络报文中的关键数据包括:根据关键字或正则表达式,提取所述网络报文中的关键数据。
[0015]上述方案中,所述方法还包括:
[0016]将不同的编码类型划分成多个编码区间,并确定各编码区间的优先级关系。
[0017]上述方案中,所述确定所述关键数据解码后的数据对应的编码类型包括:
[0018]加载所述各编码区间的配置信息;
[0019]循环遍历所述解码后的数据,计算满足各编码区间的字符个数;
[0020]根据所述解码后的数据中满足各编码区间的字符个数、以及各编码区间的优先级关系进行编码类型判断,确定所述解码后的数据所对应的编码类型;
[0021 ] 释放所述各编码区间的配置信息。
[0022]上述方案中,所述循环遍历所述解码后的数据,计算满足各编码区间的字符个数包括:
[0023]按照各编码区间的第一预设优先级,依次判断所述解码后的数据中的字符是否满足各编码区间;统计所述解码后的数据中满足各编码区间的字符数。
[0024]上述方案中,所述根据解码后的数据中满足各编码区间的字符个数、以及各编码区间的优先级关系进行编码类型判断,确定所述解码后的数据所对应的编码类型包括:
[0025]按照各编码区间的第二预设优先级,依次判断解码后的数据中满足各编码区间的字符数与所述解码后的数据扣除空字符和O字符后的总长度的之间关系,根据解码后的数据中满足各编码区间的字符数与所述解码后的数据扣除空字符和O字符后的总长度之间的关系确定所述关键数据所对应的编码类型。
[0026]本发明实施例还提供了一种数据编码类型识别及转码装置,所述装置包括:关键数据提取单元、解码单元、编码类型识别单元、数据转码单元,其中,
[0027]所述关键数据提取单元,用于提取用户操作产生的网络报文中的关键数据,并将提取的关键数据发送到解码单元;
[0028]所述解码单元,用于对所述关键数据进行解码,并解码后的数据发送到编码类型识别单元;
[0029]所述编码类型识别单元,用于确定所述关键数据解码后的数据对应的编码类型,并将确定的编码类型发送到数据转码单元;
[0030]所述数据转码单元,用于根据所述编码类型,对所述关键数据解码后的数据进行转码。
[0031]上述方案中,所述关键数据提取单元具体用于:根据关键字或正则表达式,提取所述网络报文中的关键数据。
[0032]上述方案中,所述装置还包括编码区间划分单元,用于将不同的编码类型划分成多个编码区间,并确定各编码区间的优先级关系。
[0033]上述方案中,所述编码类型识别单元包括配置子单元、统计子单元、决策子单元、撤销子单元,其中,
[0034]所述配置子单元,用于加载所述各编码区间的配置信息;
[0035]所述统计子单元,用于循环遍历所述解码后的数据,计算满足各编码区间的字符个数;
[0036]所述决策子单元,用于根据所述解码后的数据中满足各编码区间的字符个数、以及各编码区间的优先级关系进行编码类型判断,确定所述解码后的数据所对应的编码类型;
[0037]所述撤销子单元,用于释放所述各编码区间的配置信息。
[0038]上述方案中,所述统计子单元具体用于:按照各编码区间的第一预设优先级,依次判断所述解码后的数据中的字符是否满足各编码区间;统计所述解码后的数据中满足各编码区间的字符数。
[0039]上述方案中,所述决策子单元具体用于:按照各编码区间的第二预设优先级,依次判断解码后的数据中满足各编码区间的字符数与所述解码后的数据扣除空字符和O字符后的总长度的之间关系,根据解码后的数据中满足各编码区间的字符数与所述解码后的数据扣除空字符和O字符后的总长度之间的关系确定所述关键数据所对应的编码类型。
[0040]本发明实施例所提供的方法及装置,先提取用户操作产生的网络报文中的关键数据,对所述关键数据进行解码;再确定所述关键数据解码后的数据对应的编码类型;最后根据所述编码类型,对所述关键数据解码后的数据进行转码。如此,能够有效、准确地识别和转换数据,从而解决由于编码类型识别错误导致的中文乱码问题,提高了数据编码识别的准确率;并且,数据编码类型识别和解码过程无须人工分析和维护,降低了维护成本,提高了用户体验。
【附图说明】
[0041]图1为本发明实施例一数据编码类型识别及转码方法流程示意图;
[0042]图2为本发明实施例二数据编码类型识别及转码方法流程示意图;
[0043]图3为本发明实施例数据编码类型识别及转码装置结构示意图。
【具体实施方式】
[0044]现有技术中大都是通过提取超文本传输协议(HTTP,HyperText TransferProtocol)报文中request header中的charset来获得关键数据的编码类型,或通过提取HTTP报文中response header中的charset来获得关键数据的编码类型,但是,如果HTTP 报文中 request header 中没有 charset,或者 HTTP 报文中 response header 中没有charset,或者HTTP数据报文中没有相关的数据编码类型,或者数据HTTP数据报文中的数据编码类型是错误的,这种方法则会造成数据乱码。如果通过预定义的方式来指定关键数据的编码类型,那么,一旦该预定义的编码类型错误或者HTTP报文的编码类型发生变化,则也会造成数据乱码,而且需要工作人员去维护该预定义的编码类型,需要花费大量时间去分析和维护。
[0045]本发明实施例所述编码类型识别及转码方法,通过分析常用编码之间的关系,结合各种编码的特点,总结编码之间的规律,实现了一种URL编码类型识别和转码的方法,可以有效和准确的识别和转换数据,可扩展性较强,无须人工分析和维护,降低了维护成本,给用户带来了良好的体验。
[0046]本发明实施例中,先提取用户操作产生的网络报文中的关键数据,对所述关键数据进行解码;再确定所述关键数据解码后的数据对应的编码类型;最后根据所述编码类型,对所述关键数据解码后的数据进行转码。
[0047]本发明实施例所述编码类型识别及转码方法,在确定所述关键数据解码后的数据对应的编码类型之前,首先需要将不同的编码类型划分成多个编码区间,并确定各编码区间的优先级关系。所述编码区间的优先级关系包括第一优先级和第二优先级,其中,所述第一优先级用于循环遍历所述解码后的数据,计算满足各编码区间的字符个数;所述第二优先级用于根据所述解码后的数据中满足各编码区间的字符个数进行编码类型判断,确定所述解码后的数据所对应的编码类型;所述优先级可以根据不同编码之间的关系、编码区间内码字的使用情况、编码的特点、码字的生僻程度确定。
[0048]本发明实施例中,以UTF8编码和GB18030编码为例,具体阐述本发明实施例
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1