买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种FBX格式三维模型的加密及解密方法_长沙能川信息科技有限公司_201910421963.1 

申请/专利权人:长沙能川信息科技有限公司

申请日:2019-05-21

公开(公告)日:2020-11-20

公开(公告)号:CN110138555B

主分类号:H04L9/08(20060101)

分类号:H04L9/08(20060101);H04L9/06(20060101);G06F21/60(20130101)

优先权:

专利状态码:有效-授权

法律状态:2020.11.20#授权;2019.09.10#实质审查的生效;2019.08.16#公开

摘要:本发明公开了一种FBX格式三维模型的加密及解密方法,具体涉及三维模型领域,包括加密模块和解密模块,1所述加密模块的加密方法如下:步骤S101、读取原始的FBX格式三维模型文件;步骤S102、版权所有人输入一段文字密钥,通过MD5加密,生成4段32位散列值。本发明提供了一种简单易用的、高效率的FBX格式三维模型的加密和解密方法,采用此加密解密方法,通过预设的密钥计算出模型文件的随机数据的加入位置,通过改变密钥可以调整模型文件的随机数据的加入位置,从而在保持解密方法效率高的优点的同时,提高了算法的安全性,不易被破解,且三维模型解密算法复杂度较低。

主权项:1.一种FBX格式三维模型的加密及解密方法,其特征在于:包括加密模块和解密模块;1所述加密模块的加密方法如下:步骤S101、读取原始的FBX格式三维模型文件;步骤S102、版权所有人输入一段文字密钥,通过MD5加密,生成4段32位散列值;步骤S103、通过二进制搜索找到关键字Vertices第1次出现的文件位置VP1,若Vertices存在,取第1段32位散列值的前8位对应的十进制数VN1作为偏移值,找到VP1向后数N1位的位置VP1N,在VP1N后加入第1段32位散列值的后24位数据序列,若Vertices不存在,则直接加密结束;步骤S104、通过二进制搜索找到关键字PolygonVertexIndex第1次出现的文件位置PP1,若PolygonVertexIndex存在,取第2段32位散列值的前8位对应的十进制数PN1作为偏移值,找到PP1向后数PN1位的位置PP1N,在PP1N后加入第2段32位散列值的后24位数据序列,若PolygonVertexIndex不存在,则直接加密结束;步骤S105、通过二进制搜索找到关键字Edges第1次出现的文件位置EP1,若Edges存在,取第3段32位散列值的前8位对应的十进制数EN1作为偏移值,找到EP1向后数EN1位的位置EP1N,在EP1N后加入第3段32位散列值的后24位数据序列,若Edges不存在,则直接加密结束;步骤S106、通过二进制搜索找到关键字GeometryVersion第1次出现的文件位置GP1,若GeometryVersion存在,取第4段32位散列值的前8位对应的十进制数GN1作为偏移值,找到GP1向后数GN1位的位置GP1N,在GP1N后加入第4段32位散列值的后24位数据序列,若GeometryVersion不存在,则直接加密结束;步骤S107、通过二进制搜索找到关键字Vertices第2次出现的文件位置VP2,若Vertices存在,将第1段32位散列值循环左移8位成为新的32位散列值,取新32位散列值的前8位对应的十进制数VN2作为偏移值,找到VP2向后数VN2位的位置VP2N,在VP2N后加入新32位散列值的后24位数据序列,若Vertices不存在,则直接加密结束;步骤S108、通过二进制搜索找到关键字PolygonVertexIndex第2次出现的文件位置PP2,若PolygonVertexIndex存在,将第2段32位散列值循环左移8位成为新的32位散列值,取新32位散列值的前8位对应的十进制数PN2作为偏移值,找到PP2向后数PN2位的位置PP2N,在PP2N后加入新32位散列值的后24位数据序列,若PolygonVertexIndex不存在,则直接加密结束;步骤S109、通过二进制搜索找到关键字Edges第2次出现的文件位置EP2,若Edges存在,将第3段32位散列值循环左移8位成为新的32位散列值,取新32位散列值的前8位对应的十进制数EN2作为偏移值,找到EP2向后数EN2位的位置EP2N,在EP2N后加入新32位散列值的后24位数据序列,若Edges不存在,则直接加密结束;步骤S110、通过二进制搜索找到关键字GeometryVersion第2次出现的文件位置GP2,若GeometryVersion存在,将第4段32位散列值循环左移8位成为新的32位散列值,取新32位散列值的前8位对应的十进制数GN2作为偏移值,找到GP2向后数GN2位的位置GP2N,在GP2N后加入新32位散列值的后24位数据序列,若GeometryVersion不存在,则直接加密结束;步骤S111、依此类推,直到搜索完所有的关键字Vertices、PolygonVertexIndex、Edges和GeometryVersion,完成三维模型文件的加密过程,从而生成新的三维模型文件,加密结束;2所述解密模块的解密方法如下:步骤S101、通过网络或其他物理方式传播所述的新的三维模型文件;步骤S102、需要使用该三维模型文件时,可根据4段32位散列值将新模型文件还原成标准的FBX格式三维模型文件;步骤S103、通过二进制搜索找到关键字Vertices第1次出现的文件位置VP1,若Vertices存在,取第1段32位散列值的前8位对应的十进制数VN1作为偏移值,找到VP1向后数N1位的位置VP1N,在VP1后删除掉24位数据序列,若Vertices不存在,则直接解密结束;步骤S104、通过二进制搜索找到关键字PolygonVertexIndex第1次出现的文件位置PP1,若PolygonVertexIndex存在,取第2段32位散列值的前8位对应的十进制数PN1作为偏移值,找到PP1向后数PN1N位的位置PP1N,在PP1后删除掉24位数据序列,若PolygonVertexIndex不存在,则直接解密结束;步骤S105、通过二进制搜索找到关键字Edges第1次出现的文件位置EP1,若Edges存在,取第3段32位散列值的前8位对应的十进制数EN1作为偏移值,找到EP1向后数EN1位的位置EP1N,在EP1N后删除掉24位数据序列,若Edges不存在,则直接解密结束;步骤S106、通过二进制搜索找到关键字GeometryVersion第1次出现的文件位置GP1,若GeometryVersion存在,取第4段32位散列值的前8位对应的十进制数GN1作为偏移值,找到GP1向后数GN1位的位置GP1N,在GP1N后删除掉24位数据序列,若GeometryVersion不存在,则直接解密结束;步骤S107、通过二进制搜索找到关键字Vertices第2次出现的文件位置VP2,若Vertices存在,将第1段32位散列值循环左移8位成为新的32位散列值,取新32位散列值的前8位对应的十进制数VN2作为偏移值,找到VP2向后数N2位的位置VP2N,在VP2N后删除掉24位数据序列,若Vertices不存在,则直接加密结束;步骤S108、通过二进制搜索找到关键字PolygonVertexIndex第2次出现的文件位置PP2,若PolygonVertexIndex存在,将第2段32位散列值循环左移8位成为新的32位散列值,取新32位散列值的前8位对应的十进制数PN2作为偏移值,找到PP2向后数PN2位的位置PP2N,在PP2N后删除掉24位数据序列,若PolygonVertexIndex不存在,则直接加密结束;步骤S109、通过二进制搜索找到关键字Edges第2次出现的文件位置EP2,若Edges存在,将第3段32位散列值循环左移8位成为新的32位散列值,取新32位散列值的前8位对应的十进制数EN2作为偏移值,找到EP2向后数EN2位的位置EP2N,在EP2N后删除掉24位数据序列,若Edges不存在,则直接加密结束;步骤S110、通过二进制搜索找到关键字GeometryVersion第2次出现的文件位置GP2,若GeometryVersion存在,将第4段32位散列值循环左移8位成为新的32位散列值,取新32位散列值的前8位对应的十进制数GN2作为偏移值,找到GP2向后数GN2位的位置GP2N,在GP2N后删除掉24位数据序列,若GeometryVersion不存在,则直接加密结束;步骤S111、依此类推,直到搜索完所有的关键字Vertices、PolygonVertexIndex、Edges和GeometryVersion,完成三维模型文件的解密过程,还原成标准的FBX格式三维模型文件,解密结束。

全文数据:一种FBX格式三维模型的加密及解密方法技术领域本发明涉及三维模型技术领域,更具体地说,本发明涉及一种FBX格式三维模型的加密及解密方法。背景技术FBX格式三维模型文件是一种目前广泛使用的三维模型文件。FBX格式三维模型文件本身处于一种无保护状态,当这些文件放置于网络上或随系统安装到客户电脑上时,任何使用者皆可读取和修改这些三维模型文件,或将这些三维模型用于其他应用,如此一来缺乏对设计者的工作成果或拥有者的资产给予适当保护。现有的三维模型保护方法通常是通过变换三维模型中物件面元的点坐标,使未授权的用户无法正确的获取原始三维物件。该方法在模型加载后通常需要通过复杂的矩阵变换计算来进行模型还原,对于大型三维模型其解密方法耗时较长,对系统性能有较大影响。发明内容为了克服现有技术的上述缺陷,本发明的实施例提供一种FBX格式三维模型的加密及解密方法,本发明通过针对上述三维模型保密方法的缺陷,针对FBX格式三维模型文件的特点,通过密钥,在模型文件的多个特殊位置加入一段随机数据,通过改变密钥可以调整模型文件的随机数据和加入的位置,该方法在确保加密安全性较高且三维模型解密算法复杂度较低。为实现上述目的,本发明提供如下技术方案:一种FBX格式三维模型的加密及解密方法,包括加密模块和解密模块;1所述加密模块的加密方法如下:步骤S101、读取原始的FBX格式三维模型文件;步骤S102、版权所有人输入一段文字密钥,通过MD5加密,生成4段32位散列值;步骤S103、通过二进制搜索找到关键字Vertices第1次出现的文件位置VP1,若Vertices存在,取第1段32位散列值的前8位对应的十进制数VN1作为偏移值,找到VP1向后数N1位的位置VP1N,在VP1N后加入第1段32位散列值的后24位数据序列,若Vertices不存在,则直接加密结束;步骤S104、通过二进制搜索找到关键字PolygonVertexIndex第1次出现的文件位置PP1,若PolygonVertexIndex存在,取第2段32位散列值的前8位对应的十进制数PN1作为偏移值,找到PP1向后数PN1位的位置PP1N,在PP1N后加入第2段32位散列值的后24位数据序列,若PolygonVertexIndex不存在,则直接加密结束;步骤S105、通过二进制搜索找到关键字Edges第1次出现的文件位置EP1,若Edges存在,取第3段32位散列值的前8位对应的十进制数EN1作为偏移值,找到EP1向后数EN1位的位置EP1N,在EP1N后加入第3段32位散列值的后24位数据序列,若Edges不存在,则直接加密结束;步骤S106、通过二进制搜索找到关键字GeometryVersion第1次出现的文件位置GP1,若GeometryVersion存在,取第4段32位散列值的前8位对应的十进制数GN1作为偏移值,找到GP1向后数GN1位的位置GP1N,在GP1N后加入第4段32位散列值的后24位数据序列,若GeometryVersion不存在,则直接加密结束;步骤S107、通过二进制搜索找到关键字Vertices第2次出现的文件位置VP2,若Vertices存在,将第1段32位散列值循环左移8位成为新的32位散列值,取新32位散列值的前8位对应的十进制数VN2作为偏移值,找到VP2向后数VN2位的位置VP2N,在VP2N后加入新32位散列值的后24位数据序列,若Vertices不存在,则直接加密结束;步骤S108、通过二进制搜索找到关键字PolygonVertexIndex第2次出现的文件位置PP2,若PolygonVertexIndex存在,将第2段32位散列值循环左移8位成为新的32位散列值,取新32位散列值的前8位对应的十进制数PN2作为偏移值,找到PP2向后数PN2位的位置PP2N,在PP2N后加入新32位散列值的后24位数据序列,若PolygonVertexIndex不存在,则直接加密结束;步骤S109、通过二进制搜索找到关键字Edges第2次出现的文件位置EP2,若Edges存在,将第3段32位散列值循环左移8位成为新的32位散列值,取新32位散列值的前8位对应的十进制数EN2作为偏移值,找到EP2向后数EN2位的位置EP2N,在EP2N后加入新32位散列值的后24位数据序列,若Edges不存在,则直接加密结束;步骤S110、通过二进制搜索找到关键字GeometryVersion第2次出现的文件位置GP2,若GeometryVersion存在,将第4段32位散列值循环左移8位成为新的32位散列值,取新32位散列值的前8位对应的十进制数GN2作为偏移值,找到GP2向后数GN2位的位置GP2N,在GP2N后加入新32位散列值的后24位数据序列,若GeometryVersion不存在,则直接加密结束;步骤S111、依此类推,直到搜索完所有的关键字Vertices、PolygonVertexIndex、Edges和GeometryVersion,完成三维模型文件的加密过程,从而生成新的三维模型文件,加密结束;2所述解密模块的解密方法如下:步骤S101、通过网络或其他物理方式传播所述的新三维模型文件;步骤S102、需要使用该三维模型文件时,可根据4段32位散列值将新模型文件还原成标准的FBX格式三维模型文件;步骤S103、通过二进制搜索找到关键字Vertices第1次出现的文件位置VP1,若Vertices存在,取第1段32位散列值的前8位对应的十进制数VN1作为偏移值,找到VP1向后数N1位的位置VP1N,在VP1后删除掉24位数据序列,若Vertices不存在,则直接解密结束;步骤S104、通过二进制搜索找到关键字PolygonVertexIndex第1次出现的文件位置PP1,若PolygonVertexIndex存在,取第2段32位散列值的前8位对应的十进制数PN1作为偏移值,找到PP1向后数PN1N位的位置PP1N,在PP1后删除掉24位数据序列,若PolygonVertexIndex不存在,则直接解密结束;步骤S105、通过二进制搜索找到关键字Edges第1次出现的文件位置EP1,若Edges存在,取第3段32位散列值的前8位对应的十进制数EN1作为偏移值,找到EP1向后数EN1位的位置EP1N,在EP1N后删除掉24位数据序列,若Edges不存在,则直接解密结束;步骤S106、通过二进制搜索找到关键字GeometryVersion第1次出现的文件位置GP1,若GeometryVersion存在,取第4段32位散列值的前8位对应的十进制数GN1作为偏移值,找到GP1向后数GN1位的位置GP1N,在GP1N后删除掉24位数据序列,若GeometryVersion不存在,则直接解密结束;步骤S107、通过二进制搜索找到关键字Vertices第2次出现的文件位置VP2,若Vertices存在,将第1段32位散列值循环左移8位成为新的32位散列值,取新32位散列值的前8位对应的十进制数VN2作为偏移值,找到VP2向后数N2位的位置VP2N,在VP2N后删除掉24位数据序列,若Vertices不存在,则直接加密结束;步骤S108、通过二进制搜索找到关键字PolygonVertexIndex第2次出现的文件位置PP2,若PolygonVertexIndex存在,将第2段32位散列值循环左移8位成为新的32位散列值,取新32位散列值的前8位对应的十进制数PN2作为偏移值,找到PP2向后数PN2位的位置PP2N,在PP2N后删除掉24位数据序列,若PolygonVertexIndex不存在,则直接加密结束;步骤S109、通过二进制搜索找到关键字Edges第2次出现的文件位置EP2,若Edges存在,将第3段32位散列值循环左移8位成为新的32位散列值,取新32位散列值的前8位对应的十进制数EN2作为偏移值,找到EP2向后数EN2位的位置EP2N,在EP2N后删除掉24位数据序列,若Edges不存在,则直接加密结束;步骤S110、通过二进制搜索找到关键字GeometryVersion第2次出现的文件位置GP2,若GeometryVersion存在,将第4段32位散列值循环左移8位成为新的32位散列值,取新32位散列值的前8位对应的十进制数GN2作为偏移值,找到GP2向后数GN2位的位置GP2N,在GP2N后删除掉24位数据序列,若GeometryVersion不存在,则直接加密结束;步骤S111、依此类推,直到搜索完所有的关键字Vertices、PolygonVertexIndex、Edges和GeometryVersion,完成三维模型文件的解密过程,还原成标准的FBX格式三维模型文件,解密结束。在一个优选地实施方式中,所述加密模块安装于版权人电脑上,采用所述的加密方法对标准的FBX格式三维模型文件进行加密,生成新的三维模型加密文件。在一个优选地实施方式中,所述解密模块内置于版权人所有的软件系统中,或以dll动态链接库的方式,随三维模型加密文件一起安装在用户电脑上。在一个优选地实施方式中,所述解密装模块内置用于加解密的4段32位散列值,可对三维模型加密文件进行解密,还原成标准的FBX三维模型文件。本发明的技术效果和优点:1、本发明采用此加密解密方法,通过预设的密钥计算出模型文件的随机数据的加入位置,通过改变密钥可以调整模型文件的随机数据的加入位置,从而在保持解密方法效率高的优点的同时,提高了算法的安全性,不易被破解,且三维模型解密算法复杂度较低;2、本发明提供的加密和解密方法简单易用,提供一种高效率的FBX格式三维模型,解决FBX格式三维模型保密的问题,以及现有FBX格式三维模型加密解密方法复杂,时间复杂度高的问题。附图说明图1为本发明的加密方法流程图。图2为本发明的解密方法流程图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。根据图1-2所示的一种FBX格式三维模型的加密及解密方法,包括加密模块和解密模块;所述加密模块安装于版权人电脑上,采用所述的加密方法对标准的FBX格式三维模型文件进行加密,生成新的三维模型加密文件;所述解密模块内置于版权人所有的软件系统中,或以dll动态链接库的方式,随三维模型加密文件一起安装在用户电脑上;所述解密装模块内置用于加解密的4段32位散列值,可对三维模型加密文件进行解密,还原成标准的FBX三维模型文件。以下对本发明的优选实施例进行详细说明:1所述加密模块的加密方法如下:步骤S101、某原始的FBX格式三维模型文件,包含关键字Vertices、PolygonVertexIndex、Edges和GeometryVersion各2次;步骤S102、版权所有人输入一段文字“三维模型加密”通过MD5加密,生成4段32位散列值为a2dd401574e8f21e5ca68ec78084d214十六进制表示;步骤S103、通过二进制搜索找到关键字Vertices第1次出现的文件位置VP1,若Vertices存在,取第1段32位散列值的前8位a2十六进制表示对应的十进制数162作为偏移值,找到VP1向后数162位的位置VP1N,在VP1N后加入第1段32位散列值的后24位数据序列dd4015十六进制表示,若Vertices不存在,则直接加密结束;步骤S104、通过二进制搜索找到关键字PolygonVertexIndex第1次出现的文件位置PP1,若PolygonVertexIndex存在,取第2段32位散列值的前8位74十六进制表示对应的十进制数116作为偏移值,找到PP1向后数116位的位置PP1N,在PP1N后加入第2段32位散列值的后24位数据序列e8f21e十六进制表示,若PolygonVertexIndex不存在,则直接加密结束;步骤S105、通过二进制搜索找到关键字Edges第1次出现的文件位置EP1,若Edges存在,取第3段32位散列值的前8位5c对应的十进制数92作为偏移值,找到92向后数EN1位的位置EP1N,在EP1N后加入第3段32位散列值的后24位数据序列a68ec7,若Edges不存在,则直接加密结束;步骤S106、通过二进制搜索找到关键字GeometryVersion第1次出现的文件位置GP1,若GeometryVersion存在,取第4段32位散列值的前8位80对应的十进制数128作为偏移值,找到GP1向后数128位的位置GP1N,在GP1N后加入第4段32位散列值的后24位数据序列84d214,若GeometryVersion不存在,则直接加密结束;步骤S107、通过二进制搜索找到关键字Vertices第2次出现的文件位置VP2,若Vertices存在,将第1段32位散列值循环左移8位成为新的32位散列值dd4015a2,取新32位散列值的前8位dd对应的十进制数221作为偏移值,找到VP2向后数221位的位置VP2N,在VP2N后加入新32位散列值的后24位数据序列4015a2,若Vertices不存在,则直接加密结束;步骤S108、通过二进制搜索找到关键字PolygonVertexIndex第2次出现的文件位置PP2,若PolygonVertexIndex存在,将第2段32位散列值循环左移8位成为新的32位散列值e8f21e74,取新32位散列值的前8位e8对应的十进制数232作为偏移值,找到PP2向后数232位的位置PP2N,在PP2N后加入新32位散列值的后24位数据序列f21e74,若PolygonVertexIndex不存在,则直接加密结束;步骤S109、通过二进制搜索找到关键字Edges第2次出现的文件位置EP2,若Edges存在,将第3段32位散列值循环左移8位成为新的32位散列值a68ec75c,取新32位散列值的前8位a6对应的十进制数166作为偏移值,找到EP2向后数166位的位置EP2N,在EP2N后加入新32位散列值的后24位数据序列8ec75c,若Edges不存在,则直接加密结束;步骤S110、通过二进制搜索找到关键字GeometryVersion第2次出现的文件位置GP2,若GeometryVersion存在,将第4段32位散列值循环左移8位成为新的32位散列值84d21480,取新32位散列值的前8位84对应的十进制数132作为偏移值,找到GP2向后数132位的位置GP2N,在GP2N后加入新32位散列值的后24位数据序列d21480,若GeometryVersion不存在,则直接加密结束;步骤S111、依此类推,直到搜索完所有的关键字Vertices、PolygonVertexIndex、Edges和GeometryVersion,完成三维模型文件的加密过程,从而生成新的三维模型文件,加密结束;2所述解密模块的解密方法如下:步骤S101、通过网络或其他物理方式传播所述的新三维模型文件;步骤S102、需要使用该三维模型文件时,可根据4段32位散列值a2dd401574e8f21e5ca68ec78084d214十六进制表示将新模型文件还原成标准的FBX格式三维模型文件;步骤S103、通过二进制搜索找到关键字Vertices第1次出现的文件位置VP1,若Vertices存在,取第1段32位散列值的前8位对应的十进制数162作为偏移值,找到VP1向后数162位的位置VP1N,在VP1N后删除掉24位数据序列,若Vertices不存在,则直接解密结束;步骤S104、通过二进制搜索找到关键字PolygonVertexIndex第1次出现的文件位置PP1,若PolygonVertexIndex存在,取第2段32位散列值的前8位对应的十进制数116作为偏移值,找到PP1N向后数116位的位置PP1N,在PP1后删除掉24位数据序列,若PolygonVertexIndex不存在,则直接解密结束;步骤S105、通过二进制搜索找到关键字Edges第1次出现的文件位置EP1,若Edges存在,取第3段32位散列值的前8位对应的十进制数92作为偏移值,找到EP1向后数92位的位置EP1N,在EP1N后删除掉24位数据序列,若Edges不存在,则直接解密结束;步骤S106、通过二进制搜索找到关键字GeometryVersion第1次出现的文件位置GP1,若GeometryVersion存在,取第4段32位散列值的前8位对应的十进制数128作为偏移值,找到GP1向后数128位的位置GP1N,在GP1N后删除掉24位数据序列,若GeometryVersion不存在,则直接解密结束;步骤S107、通过二进制搜索找到关键字Vertices第2次出现的文件位置VP2,若Vertices存在,将第1段32位散列值循环左移8位成为新的32位散列值dd4015a2,取新32位散列值的前8位对应的十进制数221作为偏移值,找到VP2向后数221位的位置VP2N,在VP2N后删除掉24位数据序列,若Vertices不存在,则直接加密结束;步骤S108、通过二进制搜索找到关键字PolygonVertexIndex第2次出现的文件位置PP2,若PolygonVertexIndex存在,将第2段32位散列值循环左移8位成为新的32位散列值e8f21e74,取新32位散列值的前8位对应的十进制数232作为偏移值,找到PP2向后数232位的位置PP2N,在PP2N后删除掉24位数据序列,若PolygonVertexIndex不存在,则直接加密结束;步骤S109、通过二进制搜索找到关键字Edges第2次出现的文件位置EP2,若Edges存在,将第3段32位散列值循环左移8位成为新的32位散列值a68ec75c,取新32位散列值的前8位对应的十进制数166作为偏移值,找到EP2向后数166位的位置EP2N,在EP2N后删除掉24位数据序列,若Edges不存在,则直接加密结束;步骤S110、通过二进制搜索找到关键字GeometryVersion第2次出现的文件位置GP2,若GeometryVersion存在,将第4段32位散列值循环左移8位成为新的32位散列值84d21480,取新32位散列值的前8位对应的十进制数132作为偏移值,找到GP2向后数132位的位置GP2N,在GP2N后删除掉24位数据序列,若GeometryVersion不存在,则直接加密结束;步骤S111、依此类推,直到搜索完所有的关键字Vertices、PolygonVertexIndex、Edges和GeometryVersion,完成三维模型文件的解密过程,还原成标准的FBX格式三维模型文件,解密结束。最后应说明的几点是:首先,在本申请的描述中,需要说明的是,除非另有规定和限定,术语“安装”、“相连”、“连接”应做广义理解,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变,则相对位置关系可能发生改变;其次:本发明公开实施例附图中,只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计,在不冲突情况下,本发明同一实施例及不同实施例可以相互组合;最后:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

权利要求:1.一种FBX格式三维模型的加密及解密方法,其特征在于:包括加密模块和解密模块;1所述加密模块的加密方法如下:步骤S101、读取原始的FBX格式三维模型文件;步骤S102、版权所有人输入一段文字密钥,通过MD5加密,生成4段32位散列值;步骤S103、通过二进制搜索找到关键字Vertices第1次出现的文件位置VP1,若Vertices存在,取第1段32位散列值的前8位对应的十进制数VN1作为偏移值,找到VP1向后数N1位的位置VP1N,在VP1N后加入第1段32位散列值的后24位数据序列,若Vertices不存在,则直接加密结束;步骤S104、通过二进制搜索找到关键字PolygonVertexIndex第1次出现的文件位置PP1,若PolygonVertexIndex存在,取第2段32位散列值的前8位对应的十进制数PN1作为偏移值,找到PP1向后数PN1位的位置PP1N,在PP1N后加入第2段32位散列值的后24位数据序列,若PolygonVertexIndex不存在,则直接加密结束;步骤S105、通过二进制搜索找到关键字Edges第1次出现的文件位置EP1,若Edges存在,取第3段32位散列值的前8位对应的十进制数EN1作为偏移值,找到EP1向后数EN1位的位置EP1N,在EP1N后加入第3段32位散列值的后24位数据序列,若Edges不存在,则直接加密结束;步骤S106、通过二进制搜索找到关键字GeometryVersion第1次出现的文件位置GP1,若GeometryVersion存在,取第4段32位散列值的前8位对应的十进制数GN1作为偏移值,找到GP1向后数GN1位的位置GP1N,在GP1N后加入第4段32位散列值的后24位数据序列,若GeometryVersion不存在,则直接加密结束;步骤S107、通过二进制搜索找到关键字Vertices第2次出现的文件位置VP2,若Vertices存在,将第1段32位散列值循环左移8位成为新的32位散列值,取新32位散列值的前8位对应的十进制数VN2作为偏移值,找到VP2向后数VN2位的位置VP2N,在VP2N后加入新32位散列值的后24位数据序列,若Vertices不存在,则直接加密结束;步骤S108、通过二进制搜索找到关键字PolygonVertexIndex第2次出现的文件位置PP2,若PolygonVertexIndex存在,将第2段32位散列值循环左移8位成为新的32位散列值,取新32位散列值的前8位对应的十进制数PN2作为偏移值,找到PP2向后数PN2位的位置PP2N,在PP2N后加入新32位散列值的后24位数据序列,若PolygonVertexIndex不存在,则直接加密结束;步骤S109、通过二进制搜索找到关键字Edges第2次出现的文件位置EP2,若Edges存在,将第3段32位散列值循环左移8位成为新的32位散列值,取新32位散列值的前8位对应的十进制数EN2作为偏移值,找到EP2向后数EN2位的位置EP2N,在EP2N后加入新32位散列值的后24位数据序列,若Edges不存在,则直接加密结束;步骤S110、通过二进制搜索找到关键字GeometryVersion第2次出现的文件位置GP2,若GeometryVersion存在,将第4段32位散列值循环左移8位成为新的32位散列值,取新32位散列值的前8位对应的十进制数GN2作为偏移值,找到GP2向后数GN2位的位置GP2N,在GP2N后加入新32位散列值的后24位数据序列,若GeometryVersion不存在,则直接加密结束;步骤S111、依此类推,直到搜索完所有的关键字Vertices、PolygonVertexIndex、Edges和GeometryVersion,完成三维模型文件的加密过程,从而生成新的三维模型文件,加密结束;2所述解密模块的解密方法如下:步骤S101、通过网络或其他物理方式传播所述的新三维模型文件;步骤S102、需要使用该三维模型文件时,可根据4段32位散列值将新模型文件还原成标准的FBX格式三维模型文件;步骤S103、通过二进制搜索找到关键字Vertices第1次出现的文件位置VP1,若Vertices存在,取第1段32位散列值的前8位对应的十进制数VN1作为偏移值,找到VP1向后数N1位的位置VP1N,在VP1后删除掉24位数据序列,若Vertices不存在,则直接解密结束;步骤S104、通过二进制搜索找到关键字PolygonVertexIndex第1次出现的文件位置PP1,若PolygonVertexIndex存在,取第2段32位散列值的前8位对应的十进制数PN1作为偏移值,找到PP1向后数PN1N位的位置PP1N,在PP1后删除掉24位数据序列,若PolygonVertexIndex不存在,则直接解密结束;步骤S105、通过二进制搜索找到关键字Edges第1次出现的文件位置EP1,若Edges存在,取第3段32位散列值的前8位对应的十进制数EN1作为偏移值,找到EP1向后数EN1位的位置EP1N,在EP1N后删除掉24位数据序列,若Edges不存在,则直接解密结束;步骤S106、通过二进制搜索找到关键字GeometryVersion第1次出现的文件位置GP1,若GeometryVersion存在,取第4段32位散列值的前8位对应的十进制数GN1作为偏移值,找到GP1向后数GN1位的位置GP1N,在GP1N后删除掉24位数据序列,若GeometryVersion不存在,则直接解密结束;步骤S107、通过二进制搜索找到关键字Vertices第2次出现的文件位置VP2,若Vertices存在,将第1段32位散列值循环左移8位成为新的32位散列值,取新32位散列值的前8位对应的十进制数VN2作为偏移值,找到VP2向后数N2位的位置VP2N,在VP2N后删除掉24位数据序列,若Vertices不存在,则直接加密结束;步骤S108、通过二进制搜索找到关键字PolygonVertexIndex第2次出现的文件位置PP2,若PolygonVertexIndex存在,将第2段32位散列值循环左移8位成为新的32位散列值,取新32位散列值的前8位对应的十进制数PN2作为偏移值,找到PP2向后数PN2位的位置PP2N,在PP2N后删除掉24位数据序列,若PolygonVertexIndex不存在,则直接加密结束;步骤S109、通过二进制搜索找到关键字Edges第2次出现的文件位置EP2,若Edges存在,将第3段32位散列值循环左移8位成为新的32位散列值,取新32位散列值的前8位对应的十进制数EN2作为偏移值,找到EP2向后数EN2位的位置EP2N,在EP2N后删除掉24位数据序列,若Edges不存在,则直接加密结束;步骤S110、通过二进制搜索找到关键字GeometryVersion第2次出现的文件位置GP2,若GeometryVersion存在,将第4段32位散列值循环左移8位成为新的32位散列值,取新32位散列值的前8位对应的十进制数GN2作为偏移值,找到GP2向后数GN2位的位置GP2N,在GP2N后删除掉24位数据序列,若GeometryVersion不存在,则直接加密结束;步骤S111、依此类推,直到搜索完所有的关键字Vertices、PolygonVertexIndex、Edges和GeometryVersion,完成三维模型文件的解密过程,还原成标准的FBX格式三维模型文件,解密结束。2.根据权利要求1所述的一种FBX格式三维模型的加密及解密方法,其特征在于:所述加密模块安装于版权人电脑上,采用所述的加密方法对标准的FBX格式三维模型文件进行加密,生成新的三维模型加密文件。3.根据权利要求1所述的一种FBX格式三维模型的加密及解密方法,其特征在于:所述解密模块内置于版权人所有的软件系统中,或以dll动态链接库的方式,随三维模型加密文件一起安装在用户电脑上。4.根据权利要求1所述的一种FBX格式三维模型的加密及解密方法,其特征在于:所述解密装模块内置用于加解密的4段32位散列值,可对三维模型加密文件进行解密,还原成标准的FBX三维模型文件。

百度查询: 长沙能川信息科技有限公司 一种FBX格式三维模型的加密及解密方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。