一种Mapinfo地图加解密方法技术

技术编号:11723863 阅读:463 留言:0更新日期:2015-07-11 15:32
本发明专利技术公开了一种Mapinfo地图加解密方法,通过将Mapinfo地图文件目录下所有的小文件打包到一个Mapinfo地图引擎程序不可读的加密文件中,完成对Mapinfo地图文件的加密;之后,利用API拦截技术捕捉并拦截Mapinfo地图引擎程序所调用的API接口函数,替所述API接口函数查找并读取指定的小文件中的数据,并将所读取的数据返回给所述API接口函数,由API接口函数将接收到的读取数据返回给所述Mapinfo地图引擎程序,完成解密。本发明专利技术不依赖硬件、没有复杂的解密算法、维护成本低,是一种低成本、高性能的Mapinfo地图加解密方法。

【技术实现步骤摘要】

本专利技术涉及一种加解密方法,特别涉及。
技术介绍
随着Mapinfo地图在GIS (地理信息系统)中的应用越来越广泛、地图的含金量越来越高,各企业也越来越重视正版地图的购买和保护,地图加密将成为运营企业在实际应用中保护自身合法利益的一种有效手段。其中,Mapinfo地图对应的地图引擎是mapx,而GIS程序都是基于mapx技术开发的。目前,市场上做Mapinfo地图加密的企业比较多,方法各种各样。有的是加密某些关键性文件,有的需要使用到硬件狗,有的则是采用分布式部署的密钥管理系统来控制文件的加解密。这些方法存在解密过程复杂、需要硬件协助、成本较高等问题。Windows API是Windows操作系统提供的应用程序编程接口,它包含了上千个API接口函数以供程序员控制和使用操作系统的所有资源。当程序员考虑要对API接口函数的功能加以修改或替换时,就要使用API拦截技术。本专利技术所公开的Mapinfo地图的加解密方法,即是一种基于API接口和API拦截技术的方法。
技术实现思路
本专利技术的目的在于克服现有技术之不足,提供,通过将Mapinfo地图文件目录下所有的小文件打包到一个Mapinfo地图引擎程序不可读的加密文件中,完成对Mapinfo地图文件的加密;之后,利用API拦截技术完成解密;具有不依赖硬件、没有复杂的解密算法、维护成本低的性能。本专利技术解决其技术问题所采用的技术方案是:一种Mapinfo地图加密方法,包括如下步骤:I)利用API接口函数在待加密的Mapinfo地图文件目录下创建一个加密文件,且将所述加密文件的格式在Mapinfo地图引擎程序的可读格式种类范围以外,且所述加密文件的格式满足所在操作系统的文件格式要求;2)利用API接口函数将所述Mapinfo地图文件目录下的所有小文件打包到所述加密文件中,完成加密。步骤2)中,所述加密文件里所有小文件的存储机制为文件头和文件块分别存储;其中,所述小文件的文件头以链表方式存储,所述小文件的文件块以顺序方式存储。所述文件头信息包括文件名称、文件属性、文件创建时间、最后一次访问时间、最后一次更新时间、文件长度和文件块信息的开始索引。步骤I)中,所述Mapinfo地图引擎程序的可读格式的种类范围包括所述Mapinfo地图引擎程序根据其本身的文件操作规律而调用的API接口函数所查找的所有文件格式种类。一种Mapinfo地图解密方法,针对如上所述的加密方法,其解密方法包括步骤如下:DMapinfo地图引擎程序加载所述加密文件,并将所述加密文件的查找路径信息传给用于解密的API拦截程序;2)所述Mapinfo地图引擎程序接收到对地图的操作命令后,根据所述Mapinfo地图引擎程序本身的文件操作规律向操作系统调用相应的API接口函数;3)所述API拦截程序主动捕捉并拦截所述Mapinfo地图引擎程序所调用的API接口函数的操作;4)所述API拦截程序捕捉到所述的API接口函数的信息后,到所述加密文件的查找路径下,替所述API接口函数查找并读取指定的小文件中的数据,并将所读取的数据返回给所述API接口函数;5)所述API接口函数将所接收到的读取数据返回给所述Mapinfo地图引擎程序,所述Map inf ο地图引擎程序实现对地图的操作,完成解密。所述API拦截程序以中间件的形式加载在所述Mapinfo地图引擎程序中。所述API拦截程序包括用于捕捉并拦截所述API接口函数的拦截段、用于替所拦截的API接口函数查找并读取指定的小文件中的数据的操作段,及用于将读取结果返回给所述API接口函数的返回段。所述加密文件的格式可被所述API拦截程序的操作段所读取;同时,所述API拦截程序的操作段还包括所述加密文件中的所有小文件的存储结构信息,能够正确查找并读取指定的小文件的数据。由上述对本专利技术的描述可知,与现有技术相比,本专利技术具有如下有益效果:本专利技术通过将Mapinfo地图文件目录下所有的小文件打包到一个Mapinfo地图引擎程序不可读的加密文件中,完成对Mapinfo地图文件的加密;之后,利用API拦截技术捕捉并拦截Mapinfo地图引擎程序所调用的操作系统API接口函数,替所述API接口函数查找并读取指定的小文件中的数据,并将所读取的数据返回给所述API接口函数,由API接口函数将接收到的读取数据返回给所述Mapinfo地图引擎程序,完成解密。本专利技术将API拦截技术应用到Mapinfo地图解密当中,Mapinfo地图引擎程序需要读取哪部分的地图,API就拦截命令并解密相应文件的数据,从而能够实现地图的快速展现。整个过程中,不依赖硬件、没有复杂的解密算法、维护成本低,因此,本专利技术是一种低成本、高性能的Mapinfo地图加解密方法。【附图说明】图1为本专利技术实施例的一种Mapinfo地图加密方法中小文件的存储机制示意图;图2为本专利技术实施例的一种Mapinfo地图解密方法流程示意图。【具体实施方式】实施例,以下通过【具体实施方式】对本专利技术做进一步的描述。本专利技术提供了一种Mapinfo地图加密方法,包括如下步骤:I)利用API接口函数在待加密的Mapinfo地图文件目录下创建一个加密文件,且将所述加密文件的格式在Mapinfo地图引擎程序的可读格式种类范围以外,且所述加密文件的格式满足所在操作系统的文件格式要求;2)利用API接口函数将所述Mapinfo地图文件目录下的所有小文件打包到所述加密文件中,完成加密。作为一种优选,步骤2)中,所述加密文件里所有小文件的存储机制为文件头a和文件块b分别存储;其中,所述小文件的文件头a以链表方式存储,所述小文件的文件块b以顺序方式存储,如图2所示。所述文件头a的信息包括文件名称、文件属性、文件创建时间、最后一次访问时间、最后一次更新时间、文件长度和文件块的开始索引信息。从而便于API拦截程序的快速查找。作为一种优选,步骤I)中,所述Mapinfo地图引擎程序的可读格式的种类范围包括所述Mapinfo地图引擎程序根据其本身的文件操作规律而调用的API接口函数所查找的所有文件格式种类。未加密前,Mapinfo地图引擎程序读取地图的过程包括:A.Mapinfo地图引擎程序加载地图文件;B.所述Mapinfo地图引擎程序接收到对地图的操作命令后,根据所述Mapinfo地图引擎程序本身的文件操作规律向当前第1页1 2 本文档来自技高网...
一种Mapinfo地图加解密方法

【技术保护点】
一种Mapinfo地图加密方法,其特征在于,包括如下步骤:1)利用API接口函数在待加密的Mapinfo地图文件目录下创建一个加密文件,且将所述加密文件的格式在Mapinfo地图引擎程序的可读格式种类范围以外,且所述加密文件的格式满足所在操作系统的文件格式要求;2)利用API接口函数将所述Mapinfo地图文件目录下的所有小文件打包到所述加密文件中,完成加密。

【技术特征摘要】

【专利技术属性】
技术研发人员:夏欢王国清时宜吕崇毅宋峥晨
申请(专利权)人:厦门雅迅网络股份有限公司
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1