[发明专利]一种FBX格式三维模型的加密及解密方法有效
| 申请号: | 201910421963.1 | 申请日: | 2019-05-21 |
| 公开(公告)号: | CN110138555B | 公开(公告)日: | 2020-11-20 |
| 发明(设计)人: | 倪炜;黄博航;胡丽隽 | 申请(专利权)人: | 长沙能川信息科技有限公司 |
| 主分类号: | H04L9/08 | 分类号: | H04L9/08;H04L9/06;G06F21/60 |
| 代理公司: | 长沙中科启明知识产权代理事务所(普通合伙) 43226 | 代理人: | 匡治兵 |
| 地址: | 410205 湖南省长沙市岳麓区(县)麓*** | 国省代码: | 湖南;43 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 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格式三维模型文件,解密结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于长沙能川信息科技有限公司,未经长沙能川信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910421963.1/1.html,转载请声明来源钻瓜专利网。





