基于修改标识符的oox文本文档隐私信息检测方法_2

文档序号:9327242阅读:来源:国知局
属性w:rsidRr就是“修改标识”。由于document, xml文件中的部分修改标识符是重复的,如图2所示,因此将修改标识符插入到容器中时需要进行去重和排序操作。排序的作用主要是为了后续统计隐私信息量节省时间。
[0035]提取document, xml文件中修改标识的步骤如下:
[0036]I)利用Iibxml库中的xmlReadMemory ()函数对内存中的document, xml文件进行读取,返回xmlDocPtr指针。
[0037]2)利用XmlDocGetRootElementO函数来得到文件的根节点。
[0038]3)得到根节点之后,利用递归遍历document, xml中的所有节点及其子节点,通过compare O函数寻找节点中的包含字符串“rsid”的属性,提取对应的属性值(修改标识),并且将其放入到一个容器(Vector)中。
[0039]4)由于在document, xml文件中部分修改标识符是重复的,因此在插入到vector中时,需要利用VectorSortedPosIndexOf O函数查找该修改标识符,并且得到要插入的位置。如果已经在Vector中,则丢弃该修改标识符,继续插入下一个修改标识符。如果不在 Vector 中,根据 VectorSortedPosIndexOf (std:: vector<Plg_LongffordIndex>xsl, Plg_LongffordIndexpli, int*ipos)函数中ipos的值判断要插入的位置,这样保证了插入到vector中修改标识符是有序且不重复的,其中,xs为全部修改标识的向量容器,pli为待插入的修改标识,ipos为待插入的向量位置。
[0040]提取settings, xml文件中的修改标识符信息,其主要步骤如下:
[0041 ] I)利用Iibxml库中的xmlReadMemory ()函数对内存中的setting, xml文件进行读取,返回xmlDocPtr指针。
[0042]2)利用XmlDocGetRootElementO函数来得到文件的根节点。
[0043]3)利用xmlStrcmpO函数在settings, xml文件中寻找节点<w:rsids>,该节点涵盖了 document, xml文件中所有的修改标识符。
[0044]4)定位到节点<w:rsids>之后,遍历其所有的子节点,并提取相应“val”的值到容器(Vector)中。
[0045]5)如图3所示,由于settings, xml文件中的修改标识符不重复且有序的,因此不需要对容器中的修改标识进行去重和排序操作。
[0046]经过上述的提取操作,将document, xml和settings, xml文件中的修改标识符分别保存到vectorl和vector2中。以便后续进行隐藏信息的统计。
[0047]三、隐私信息统计
[0048]本发明解决的第三个问题是对比两个容器中修改标识符的异同并统计00X文本文档所携带的隐私信息的字节数。具体统计的过程如下:
[0049]I)如图1所示,提取vectorl保存的第一个修改标识符。
[0050]2)将步骤 I)提取到的修改标识符通过 int FindXslFromXs (std:: vector〈Plg_LongffordIndex>xs, Plg_LongffordIndex pli)函数在 vector2 中进行二分查找,其中,xs 为全部修改标识的向量容器,Pli为待查找的修改标识。
[0051]3)如果vector2中包含该修改标识,表明该修改标识符没有被修改过;如果没有找到,文档所携带的隐私信息统计量加I。
[0052]4)按照上述I)?3)的步骤循环提取vectorl中的每一个修改标识符,直到遍历完vectorl中所有的元素为止,最后得到文档所携带的总的隐私信息量。
[0053]本发明不限于上述实施方式,比如可以采用其它解压工具或解压缩开发包代替本方案中采用的Unzip,可以采用其它xml解析工具、开发包或共享库代替本方案中采用的libxml,可以采用其它模版、结构体或类的容器形式代替本方案中采用的Vector向量等。
[0054]以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。
【主权项】
1.一种基于修改标识符的OOX文本文档隐私信息检测方法,其步骤包括: 1)将待检测的OOX文本文档进行解压,形成层次化文件结构,该层次化文件结构中包含 document, xml 和 settings, xml 文件; 2)提取解压得到的document,xml和settings, xml文件中的修改标识符,并将提取的该两个文件的修改标识符分别保存到两个容器中; 3)对比两个容器中修改标识符的异同,进而统计出OOX文本文档所携带的总的隐私信息的数量。2.如权利要求1所述的方法,其特征在于:步骤I)采用Unzip软件进行所述解压。3.如权利要求2所述的方法,其特征在于,步骤I)进行所述解压的步骤包括: 1-1)利用unz0pen64()函数打开OOX文本文档,在函数内部生成一个unz64_s的结构体; 1-2)使用UnzGoToFirstFileO函数得到OOX文本文档中第一个文件的数据; 1-3)调用unzOpenCurrentFiI O函数,读取文件中的数据,利用unz641ocal_GetCurrentFi Ie Info Internal O 函数得到文件的名字。 1-4)通过strcmp O函数对比得到的文件名是否是“document, xml”和“settings, xml”中的一种,如果判断是其中的一种,通过fwriteO函数写入到相应的路径下; 1-5)调用UnzGoToNextFileO函数得到00X文本文档中下一个的数据文件;循环执行该函数,直到将document, xml和settings, xml文件全部解压出来为止; 1-6)通过unzCloseO函数关闭00X文本文档。4.如权利要求1所述的方法,其特征在于:步骤2)将document,xml文件中的修改标识符保存到容器中时,进行去重和排序操作。5.如权利要求4所述的方法,其特征在于:步骤2)提取document,xml文件中的修改标识符的步骤包括: 2-la)利用Iibxml库中的xmlReadMemoryO函数对内存中的document, xml文件进行读取,返回xmlDocPtr指针; 2-lb)利用XmlDocGetRootElementO函数得到文件的根节点; 2-lc)得到根节点之后,利用递归遍历document, xml中的所有节点及其子节点,通过compare O函数寻找节点中的包含字符串“rsid”的属性,提取对应的属性值即修改标识,并且将其放入到一个容器中; 2-ld)在插入到容器中时,利用VectorSortedPosIndexOf O函数查找该修改标识符,并且得到要插入的位置,如果已经在容器中,则丢弃该修改标识符,继续插入下一个修改标识符;如果不在容器中,根据VectorSortedPosIndexOf O函数中ipos的值判断要插入的位置,以保证插入到容器中的修改标识符是有序且不重复的。6.如权利要求1或5所述的方法,其特征在于:步骤2)提取settings,xml文件中的修改标识符的步骤包括: 2-2a)利用Iibxml库中的xmlReadMemory O函数对内存中的setting, xml文件进行读取,返回xmlDocPtr指针; 2-2b)利用XmlDocGetRootElementO函数得到文件的根节点; 2-2c)利用xmlStrcmp O函数在settings, xml文件中寻找节点<w:rsids>,该节点涵盖了 document, xml文件中所有的修改标识符; 2-2d)定位到节点<w:rsids>之后,遍历其所有的子节点,并提取相应“val”的值到容器中。7.如权利要求1所述的方法,其特征在于:步骤3)中如果settings,xml文件中的修改标识包含document, xml文件中所有修改标识符,则判定OOX文本文档中不含有隐私信息,否则判定OOX文本文档中包含有隐私信息。8.如权利要求7所述的方法,其特征在于,步骤3)对OOX文本文档所携带的隐私信息进行统计的过程如下,其中document, xml和settings, xml文件中的修改标识符分别保存到容器vectorl和容器vector2中: 3-1)提取vectorl保存的第一个修改标识符; 3-2)将步骤I)提取到的修改标识符通过int FindXslFromXs O函数在vector2中进行二分查找; 3-3)如果vector2中包含该修改标识,表明该修改标识符没有被修改过;如果没有找至IJ,则文档所携带的隐私信息统计量加I ; 3-4)按照上述步骤循环提取vectorl中的每一个修改标识符,直到遍历完vectorl中所有的元素为止,最后得到文档所携带的总的隐私信息量。9.如权利要求1所述的方法,其特征在于:步骤I)在解压处理完一个00X文本文档文件时,不将文件写入到对应的目录下,而是直接在内存中对其进行下一步的操作。
【专利摘要】本发明涉及一种基于修改标识符的OOX文本文档隐私信息检测方法。该方法的步骤包括:1)将待检测的OOX文本文档进行解压,形成层次化文件结构;2)提取解压得到的document.xml和settings.xml文件中的修改标识符,并将提取的该两个文件的修改标识符分别保存到两个容器中;3)对比两个容器中修改标识符的异同,进而统计出OOX文本文档所携带的总的隐私信息的数量。本发明可以自动化地对文本文档进行检测,防止利用基于修改标识符的OOX文本文档隐写方法来进行信息隐藏和隐蔽通信,从而避免重要信息的泄露,检测过程中无需人工干预,可以大大节省人力、时间成本。
【IPC分类】G06F21/60, G06F17/30
【公开号】CN105046159
【申请号】CN201510340530
【发明人】吴槟, 何晓磊, 赵险峰, 刘磊
【申请人】中国科学院信息工程研究所
【公开日】2015年11月11日
【申请日】2015年6月18日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1