掌桥专利:专业的专利平台
掌桥专利
首页

一种用于CAD文件的局部加密方法、系统及计算机程序产品

文献发布时间:2024-01-17 01:19:37


一种用于CAD文件的局部加密方法、系统及计算机程序产品

技术领域

本发明涉及计算机辅助设计(CAD,Computer Aided Design)领域,具体涉及一种用于CAD文件的局部加密方法、系统及计算机程序产品。

背景技术

在一些设计公司或者设计院,图纸是最为宝贵的重要文件,这些文件一旦被盗用或者改动造成的损失是十分巨大的。因此,对于这些宝贵的图纸文件通常会采取一些加密措施。传统的CAD图纸加密方式,通常是针对整张CAD图纸进行加密,以使得CAD图纸中的实体图形不被显示,或者使得CAD图纸的数据无法被获取和编辑。而这种加密方式的速度通常较慢。

为了解决上述问题,现有技术中提出了一种针对图纸的局部进行只读加密的方法。例如,将一组实体做成一个匿名块,从而将这一组实体设定为只读的状态,使得用户可以从图纸上看到这些实体,但是无法对其进行编辑(具体地,无法获取到实体的类型等重要数据)。这一类只读加密的方法虽然能够实现对图纸的局部加密处理,但是功能较为单一,应用场景也有限。

当然,在现有技术中,还提出了另一种局部加密的方法,如申请号为CN201410060364.9的中国发明专利,其公开了一种基于草绘的CAD模型局部加密方法。该方法通过对CAD模型草绘的二维曲线、三维曲线、局部曲面、单一特征或局部特征结构进行加密,使得CAD模型中的局部的特征结构被转化为其他的形式。也即是说,该方法是通过数据转换的方式实现对CAD模型的局部加密。基于该方法实现对CAD模型的局部加密后,对于用户来说,在CAD图纸中虽仍然能够看到被加密的CAD模型,但是CAD模型的显示图形却发生了变化。具体地,CAD模型中被加密的数据经过加密处理之后在图形显示上发生了变化,使得用户或计算机无法基于变化后(加密后)的图形查看或观察到原CAD 模型的全貌,从而实现了对原CAD模型的只读加密(也即只能够查看,但不能编辑)。这种局部加密的方式虽然在灵活性方面有一定的优化,但是仍然存在一些缺陷,例如对于一些经验很丰富的绘图人员来说,有一定的几率可以从未被加密的部分推导出模型的全部信息,因此该方法的保密性并不高。并且,该方法数据转化过程也相对比较复杂。

发明内容

本发明的目的在于提供一种用于CAD图纸的局部加密的方法,为了解决上述所提到的技术问题,本发明具体采用以下技术方案:

,本发明第一方面提供了一种用于CAD文件的局部加密方法,包括:

提供文件,所述文件包括:多个实体对象;

响应于用户的操作获取至少一个待加密的加密目标,所述加密目标包括:至少一个实体对象;

响应于用户的操作对所述加密目标进行加密,使得所述加密目标转为对应的加密状态,且所述加密状态包括:第一加密状态;

其中,当所述加密状态为第一加密状态时,加密目标转为对应的加密状态的步骤包括:

建立至少一个加密字典,所述加密字典中的内容可通过解密指令实现数据读取;

获取至少一个非实体对象,所述非实体对象中写入有用于描述所述加密目标的数据;

将所述非实体对象存储至所述加密字典中,并删除所述加密目标,从而使得所述加密目标处于所述第一加密状态。

在一些实施例中,获取至少一个非实体对象的步骤包括:

基于所述加密目标创建至少一个非实体对象;

对应地分析并读取所述实体对象的数据信息,所述数据信息包括:第一对象基本数据、显示数据以及特征数据;

将所述数据信息对应地写入所述非实体对象中,其中,完成数据写入后的非实体对象的数据结构包括:第二对象基本数据以及第二私有数据,且所述第二对象基本数据包括:所述第一对象基本数据,所述第二私有数据完整地继承了所述第二对象基本数据,且所述第二私有数据还包括:所述显示数据以及特征数据。

在一些实施例中,所述加密状态还包括:第二加密状态;且当所述加密状态为所述第二加密状态时,所述加密目标转为对应的加密状态的步骤包括:

获取所述加密目标中的所述实体对象;

将所述实体对象转化为自定义对象,当向用户提供用于显示所述自定义对象的解释器之后,所述加密目标处于可见状态。

在一些实施例中,其特征在于,建立至少一个加密字典的步骤包括:

在所述文件上建立至少一个字典,所述字典用于存储所述非实体对象;

对所述字典进行加密,并对应地获取到用于对所述字典实现解密的至少一个解密指令,从而得到所述加密字典。

在一些实施例中,所述解密指令包括:第一解密指令,对应地,所述方法还包括步骤:

响应于用户输入的第一解密指令,所述字典中所存储的非实体对象进入解密状态;

读取所述非实体对象中的第二对象基本数据以及第二私有数据;

根据所述第二对象基本数据和所述第二私有数据在所述文件上重新创建所述实体对象,使得所述加密目标处于可见状态。

在一些实施例中,所述解密指令包括:第二解密指令,对应地,所述方法还包括步骤:

响应于用户输入的第二解密指令,获取所述字典中所存储的非实体对象;

根据所述非实体对象创建自定义对象,并将所述自定义对象设置在所述文件上的对应的图纸空间。

本发明第二方面还提供了一种用于CAD文件的局部加密系统,包括:

文件提供模块,被配置为用于提供文件,所述文件包括:多个实体对象;

目标获取模块,被配置为用于响应于用户的操作获取至少一个待加密的加密目标,所述加密目标包括:至少一个实体对象;

加密模块,被配置为用于响应于用户的操作对所述加密目标进行加密,使得所述加密目标转为对应的加密状态,且所述加密状态包括:第一加密状态;其中,所述加密模块包括:

加密字典创建单元,被配置为用于在所述加密状态为第一加密状态时,建立至少一个加密字典,所述加密字典中的内容可通过解密指令实现数据读取;

非实体对象获取单元,被配置为用于获取至少一个非实体对象,所述非实体对象中写入有用于描述所述加密目标的数据;

加密实现单元,被配置为用于将所述非实体对象存储至所述加密字典中,并删除所述加密目标,从而使得所述加密目标处于所述第一加密状态。

在一些实施例中,所述非实体对象获取单元进一步地包括:

第一子单元,被配置为用于基于所述加密目标创建至少一个非实体对象;

第二子单元,被配置为用于对应地分析并读取所述实体对象的数据信息,所述数据信息包括:第一对象基本数据、显示数据以及特征数据;

第三子单元,被配置为用于将所述数据信息对应地写入所述非实体对象中,其中,完成数据写入后的非实体对象的数据结构包括:第二对象基本数据以及第二私有数据,且所述第二对象基本数据包括:所述第一对象基本数据,所述第二私有数据完整地继承了所述第二对象基本数据,且所述第二私有数据还包括:所述显示数据以及特征数据。

在一些实施例中,所述加密状态还包括:第二加密状态,对应地,所述加密模块还包括:

第二加密单元,被配置为用于当所述加密状态为所述第二加密状态时,获取所述加密目标中的所述实体对象;将所述实体对象转化为自定义对象,当向用户提供用于显示所述自定义对象的解释器之后,所述实体对象处于可见状态。

在一些实施例中,所述加密字典创建单元进一步地包括:

字典建立子单元,被配置为用于在所述文件上建立至少一个字典,所述字典用于存储所述非实体对象;

字典加密子单元,对所述字典进行加密,并对应地获取到用于对所述字典实现解密的至少一个解密指令,从而得到所述加密字典。

在一些实施例中,所述解密指令包括:第一解密指令,对应地,所述系统还包括:

第一解密模块,被配置为用于响应于用户输入的第一解密指令,所述字典中所存储的非实体对象进入解密状态;读取所述非实体对象中的第二对象基本数据以及第二私有数据;根据所述第二对象基本数据和第二私有数据在所述文件上重新创建所述实体对象,使得所述加密目标处于可见状态。

在一些实施例中,所述解密指令包括:第二解密指令,对应地,所述系统还包括:

第二解密模块,被配置为用于响应于用户输入的第二解密指令,获取所述字典中所存储的非实体对象;根据所述非实体对象创建自定义对象,并将所述自定义对象设置在所述文件上的对应的图纸空间。

本发明的第三方面在于,还提供了一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行时实现如上述实施例中任一所述方法的步骤。

有益技术效果:

本发明提出了一种用于对CAD文件进行局部加密的方法,使得用户可以基于业务需求对CAD文件中的不同部分(如不同的图形或图块)进行选择性地加密,从而减少了必要的加密数据量,以有效地提高CAD图形文件的加密处理速度。

同时,本发明中的局部加密优选地以一个或多个实体对象为单位进行加密,便于用户在CAD文件中快速地选择并确定所要加密的加密目标(也即加密对象)。例如,在CAD的协同作业场景中,多个协同方需要在相同的CAD文件中进行绘图作业,而不同的协同方对CAD文件的查看或编辑权限并不相同,由此往往需要由上游用户(协同项目的主要负责人)来负责CAD文件在多方传阅之间的保密工作。具体地,每个协同方在绘制过程中通常会在文件上建立一个或多个新的图块(并且,在CAD中一个图块被视为一个实体对象)以完成相应的绘制内容。因此,当上游用户希望将其中一个(或多个)协同方的绘制内容对其他的一个(或多个)协同方进行隐藏(或只读)加密时,可以快速地选中该协同方所创建的图块,以快速选择目标内容完成加密需求。本发明中的局部加密方法以一个或多个实体对象(例如,一个零部件等)、图块以及由一个或多个实体对象组成的视口或布局空间为加密单位进行隐藏或只读加密。由此,在多方协同的场景下或上下游用户的CAD文件传输过程中有助于用户高效、快捷地对CAD 文件中的部分内容进行加密,同时不会影响用户对其余内容的查看和编辑。

并且,选用字典加密技术并不会产生过多的加密数据量,避免了CAD 文件过大而导致的传输效率慢、占据过多存储空间的问题。此外,通过字典加密技术实现的加密,在用户对文件进行加密之后,所涉及到保密的相关数据信息仍然保留在CAD文件本身,便于用户对CAD文件进行解密查看。

进一步地,局部加密方式与字典加密技术的相互配合,还可以进一步地满足多方之间的文件传阅需求,在满足业务需求的条件下,提高文件传阅的效率。例如,当需要向一个或多个下游用户提供条件图时,本方法可以在原图纸上直接输出一个或多个条件图,操作简单效率更高。具体地,在原图上直接隐藏下游方 (如其他权限较小的协同方、客户等)不需要的专业数据,使得原图和条件图之前不存在割裂,有效地保证了设计数据的同步。

并且,本发明中的局部加密方式还可以应用于快速审阅的场景。具体地,用户可以对不太关注的区域进行局部地隐藏加密,从而仅对重点关注的区域进行审阅查看。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。

图1为本发明一示例性实施例中的局部加密的方法的流程示意图;

图2为CAD文件的数据结构示意图;

图3a为一具体实施例中的CAD文件的内容的显示示意图;

图3b为图3a的CAD文件中的表格部分被隐藏加密后的显示示意图;

图4a为本发明一示例性实施例中进行局部加密的第一局部操作界面示意图;

图4b为本发明一示例性实施例中进行局部加密的第二局部操作界面示意图;

图4c为本发明一示例性实施例中进行局部加密的第三局部操作界面示意图;

图5为本发明一示例性实施例中的系统的模块结构示意图;

图6a为本发明又一示例性实施例中的局部加密的第一操作状态示意图;

图6b为本发明又一示例性实施例中的局部加密的第二操作状态示意图;

图6c为本发明又一示例性实施例中的局部加密的第三操作状态示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本文中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。

本文中,术语“上”、“下”、“内”、“外”“前”、“后”、“一端”、“另一端”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。

本文中,除非另有明确的规定和限定,术语“安装”、“设置有”、“连接”等,应做广义理解,例如“连接”,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

本文中“和/或”包括任何和所有一个或多个列出的相关项的组合。

本文中“多个”意指两个或两个以上,即其包含两个、三个、四个、五个等。

本文中,“文件”指的是能够在CAD系统中运行,用于绘制、编辑、修改、储存、查看CAD绘图的各类文件。常见的CAD文件格式包括,但不限于,DWG、DXF、DWT、DWF、DWL、DWS、DWX、MNU、MNC、MNL、 MNS、CUI、CUIX、SHX、PAT、LIN、CTB、STB、PLT、PC3等。

本文中,“对象”是图纸数据(也即CAD文件数据)的基本类型,换句话说,图纸就是由一系列对象组成的。其中,“对象”进一步地包括实体对象和非实体对象。

本文中,“协同方”指的是共同参与到一个绘图项目中,互相协同作业的用户。协同方之间的专业可能相同(例如,多个建筑专业的工程师一起绘图),也可能不同(例如,建筑工程师、给排水工程师、电气工程师、暖通工程师一起绘图),协同方之间互相参考彼此绘制的图纸。

本文中,“第一加密状态”指的是隐藏加密(也即不可见加密)的状态,对于用户来说,当加密目标处于第一加密状态时,加密目标的图形或数据内容在文件上不可见。“第二加密状态”指的是只读状态(也即可见不可编辑的状态),对于用户来说,当加密目标处于第二加密状态时,加密目标的图形在文件上可见,但是无法编辑(如修改、删除、复制等)。

本文中,如图2所示,CAD图纸是保存在数据库中的对象的集合,其中基本的数据库对象为实体(本文中也称实体对象)、符号表和字典。实体是一种特殊的数据库对象,它在CAD中具有图形表示,如直线、圆、圆弧和文字都是实体。当CAD图纸被打开时,用户可以通过显示图纸的屏幕看见实体,并且能操作编辑实体。

为了扩展CAD在各行业中的应用和提高操作效率,CAD提供了二次开发接口,开发者可以根据特定行业的需求开发一些工具和软件,利用这些工具可以创建出由基本图形组合而成的复杂图形或进行一些特殊编辑操作。开发者可以定义一些与基本对象类似的参数化对象,这样的对象就是自定义对象。

专业软件利用自定义对象和反应器相关的技术,使得绘制和修改图纸效率成倍提高。但自定义对象也会带来负作用,那就是兼容性问题。如果安装了相应的专业软件或解释器(Enabler)插件(也就是能显示和编辑这些自定义对象的功能),自定义对象就可以正常显示和打印,也可以很方便地进行参数化编辑。但如果CAD里没有安装相应的解释器,CAD将无法识别这些自定义对象,不仅无法进行参数化编辑,有时甚至还会无法显示。这种状态下的自定义对象就是“代理对象(或者叫代理图形)”。由于没有解释器,CAD不知道这个自定义对象是什么类型,叫什么名字,所以统一显示为代理对象。

实施例一

本发明第一方面在于,提供了一种用于CAD文件的局部加密的方法,如图1所示,该方法包括步骤:

S10,提供文件,文件包括:多个实体对象;

S20,响应于用户的操作获取至少一个待加密的加密目标,加密目标包括:至少一个实体对象;

S30,响应于用户的操作对加密目标进行加密,使得加密目标转为对应的加密状态,且加密状态包括:第一加密状态;

其中,当加密状态为第一加密状态时,步骤S30中的加密目标转为对应的加密状态的步骤包括:

S302,建立至少一个加密字典,所述加密字典中的内容可通过解密指令实现数据读取;

S303,获取至少一个非实体对象,所述非实体对象中写入有用于描述所述加密目标的数据;

S304,将非实体对象存储至加密字典中,并删除加密目标(即删除原加密目标中的实体对象),从而使得加密目标处于第一加密状态。

进一步地,在一些实施例中,S303中获取至少一个非实体对象的步骤包括:

基于所述加密目标创建至少一个非实体对象;

对应地分析并读取所述实体对象的数据信息,所述数据信息包括:第一对象基本数据、显示数据以及特征数据;

将所述数据信息对应地写入所述非实体对象中,其中,所述数据结构包括:第二对象基本数据以及第二私有数据,且所述第二对象基本数据包括:所述第一对象基本数据,所述第二私有数据完整地继承了所述第二对象基本数据,且所述第二私有数据还包括:所述显示数据以及特征数据。

本实施例中,优选地将字典技术应用到CAD文件(也即CAD图纸)的加密应用中,以实现CAD文件中的局部加密。具体地,当用户希望对文件中的部分内容(如文件内的一个或多个实体对象)进行隐藏时,首先将用户选中所需要隐藏的部分内容组成一个加密目标,并根据加密目标中的所有实体对象对应地创建一个非实体对象。然后将加密目标中的所有实体对象的数据信息写入到非实体对象中。随后将该非实体对象存储到/加入到预先创建的加密字典中,并删除加密目标中的实体对象(也即是在文件的图纸空间上删除了对应的实体对象),从而使得用户无法从打开的文件上看到加密目标,即加密目标被隐藏。

其中,实体对象的数据的继承结构(或数据结构)为: AcDbObject→AcDbEntity→私有数据(本文中,实体对象的私有数据也被称为“第一私有数据”),其中,私有数据也称私有内容,其包括每种图形/实体对象所特有的数据,比如圆的圆心、半径等数据。而本实施例中所创建的非实体对象的数据的继承结构为:AcDbObject→私有数据。

其中,AcDbObject这一层主要包括对象的ID、对象类型、关联对象ID、图纸版本等基本数据,这些基本数据在本文中也被称为“对象基本数据”。

AcDbEntity这一层数据完全继承了AcDbObject的内容,并且增加了显示数据,代表实体。其中,显示数据包括以下一种或多种:颜色、图层、线型、线型比例、打印样式、线宽、透明度、超链接、厚度等。

私有数据则完整地继承了AcDbEntity的内容,并且增加了几何特征数据 (或特征数据)。其中,特征数据为用于描述对应的几何图形(如一个圆、一段线)所特有的数据。例如,当实体对象为一个圆时,几何特征数据包括以下一种或多种:圆心的坐标位置(圆心X、Y、Z坐标)、半径、直径、周长、面积、法向坐标(法向X、Y、Z坐标)等等。又例如,当实体对象为弧线时,几何特征数据包括以下一种或多种:起点坐标(起点X、Y、Z坐标)、圆心坐标(圆心X、Y、Z坐标)、端点坐标(端点X、Y、Z坐标)、起点角度、端点角度、总角度、弧长、面积、法向坐标(法向X、Y、Z坐标)等等。

基于第一对象基本数据、显示数据以及几何特征数据等数据,可以对实体对象进行完整地显示。

而本实施例中,非实体对象中完整地写入了原实体对象中的数据信息,在后续地解密过程中,可以完整地对原实体对象进行重现(即基于上述数据信息在图纸空间上重新创建原实体对象)。并且,非实体对象的继承结构采用了 AcDbObject→私有数据的形式,与加密字典的特性相匹配,从而能够顺利地在加密字典中实现存储。

同时,本实施例中将非实体对象存储于加密字典中,而加密字典存储于图纸本身,因此,加密的数据与图纸本身高度绑定。加密数据与图纸之间的高度绑定可以实现图纸数据的整体传阅(也即保证了在图纸传阅过程中图纸数据的完整性),便于图纸数据的协调与管理。

例如,当对加密的图纸进行保存时,加密的数据仍然保存在图纸本身,便于用户在后续对图纸进行调阅时,对图纸的全部数据内容进行查看。又例如,当图纸进行传输时,仍然是将图纸的所有数据作为整体进行传阅,当获取图纸的下游方或协同方需要对图纸进行查看时,既可以对未加密的部分进行查看编辑,同时也可以在获取到相应的权限后,便捷地对加密内容进行查看。

在一些实施例中,用户为发出指令的人。

或者,在另一些实施例中,用户为可以发出相应指令的计算机或其他电子设备。

例如,在一些实施例中,加密目标为一个实体对象,如可以是一张图纸中的一个几何图形。

又例如,在一些实施例中,加密目标为由多个实体对象所组合的图块。也即是说,本实施例中可以将图块作为一个整体进行加密。

又例如,在一些实施例中,加密目标可以为由一个或多个实体对象组成的视口,或布局空间等。

可以理解的是,视口本身就是一个实体对象,因此可以直接以视口为加密目标进行加密。

针对布局空间直接进行加密时,有助于用户快速地选择多个图形元素(如视口、布局空间、图块或其他的单个实体对象等)。当然,在另一些实施例中,还可以对布局空间内部中的一个或多个实体对象进行加密,以进一步地提高加密操作的灵活性、便捷性。

进一步地,在一些实施例中,加密状态还包括:第二加密状态;且当加密状态为第二加密状态时,如图1所示,步骤S30中的加密目标转为对应的加密状态的步骤包括:

S306,获取加密目标中的实体对象;

S307,将实体对象转化为自定义对象,当向用户提供用于显示自定义对象的解释器之后,加密目标处于可见状态。

本实施例中的第二加密状态为只读加密的状态,即使得加密目标处于可以查看,但不可编辑的状态。

本实施例中,优选地选用将自定义技术应用到图纸的只读加密(即可见但不可编辑)应用中,对于希望被只读加密的加密目标,通过自定义技术将其转化为自定义对象,该自定义对象需要在解释器的配合下进行显示(具体地,解释器解释自定义实体以使自定义实体在图纸上显示)。本实施例中,字典技术与自定义技术的相互配合提供了一种综合性的加密方案,由此可以针对不同保密需求的加密目标,提供对应的加密方式,以向不同的下游用户提供不同的查看、编辑权限,从而进一步地提高了加密方式的灵活性。

在一些实施例中,解释器就可以提供读取特殊数据的接口,只要选择了加密的实体对象,就可以通过解释器在特性框里展示用户关心的数据。可以理解的是,这个数据项不是固定的,只要在解释器里加了,就可以展示数据。

在一些实施例中,对于仅获取到只读权限的使用方(如各个下游用户、协同方等),可以向其提供仅仅具有显示自定义对象功能的解释器,因此,在这些使用方在对图纸进行查看时,只能够在图纸上看到加密目标,而无法对其进行编辑。

可以理解的是,如果不向使用方提供解释器时,加密目标处于隐藏状态。也即是说,本实施例中的自定义技术加密方式既可以用于进行隐藏加密也可以用于进行只读加密。

或者,在另一些实施例中,还可以向使用方提供具有编辑、查看双重功能的解释器,解释器可以对只读的加密目标实现解密,从而使得加密目标处于可查看、可编辑的状态。

在一些实施例中,当用户希望选用自定义技术进行只读加密时,还可以在图纸设计的过程中,即采用自定义技术进行对实体对象进行绘制。本实施例中,上游用户无需对图纸进行额外的特殊处理,则可以使得图纸相对于其他下游用户实现只读加密的作用(具体地,下游用户在没有获得解释器的情况下,无法进行数据读取或识别)。

因此,对于上游用户(如设计公司、设计院)来说,也可以通过向不同的下游用户(如合作的客户)提供特定的解释器,以向不同的下游用户提供不同的查看、编辑权限。

或者,在另一些实施例中,可以将自定义对象的数据存储到加密字典中,并将自定义对象从图纸空间上删除,此时,用户还需要进一步地获取到加密字典的解密指令,才可以获取到自定义对象的只读权限,也即实现对加密目标的只读。本实施例中进一步地提高了图纸保密的安全性。

进一步地,在一些实施例中,步骤S302包括:

在文件上建立至少一个字典,字典用于存储非实体对象;

对字典进行加密,并对应地获取到用于对字典实现解密的至少一个解密指令,从而得到所述加密字典。

例如,在一些实施例中,首先在创建图纸时,即在命名对象字典中新增一个或多个专用的加密字典。同时,对于加密字典的开启与关闭(也即是对于加密字典中数据获取的通道)也可设置对应的解密指令,仅在使用方具有相应的加密或解密权限时,才可以利用加密字典实现加密或解密等功能。

本实施例中,图纸中的被加密的数据还是保存在图纸上,可以有效地保护图纸本身的数据安全。并且,本实施例中所得的保密图纸还可用于输出条件图 (条件图指的是对应于不同角色的不同版本的图纸,如对应于不同的下游用户提供不同区域的图纸),即在原图上直接隐藏下行专业(即下游用户)不需要的数据,这样原图和条件图就不会割裂开了,能有效保证设计数据同步。

例如,在家装设计场景中,现在需要把设计好的图纸拿给消费者浏览,但是对于里面某些敏感的数据,比如造价表等,不希望让消费者看到,对此一般需保存两份或多份图纸,一份不带造价表,一份带造价表。而本实施例中的局部加密方法能够对这个造价表进行局部加密,同时,用户还可以给这个造价表赋加密权限,如隐藏、只读等,从而无需保存两份或多份图纸,仅通过一份图纸即可实现双方或多方的来回传阅,且保证了数据的保密性和安全性。

在一些实施例中,对隐藏的加密目标进行解密的过程为:根据非实体对象的数据重新在图纸空间上创建实体对象。因此,本实施例中的加密方法并不会对原图的图形内容造成修改,保证了数据的安全性与准确性。

需要注意的是,如图2所示,符号表和字典是容器,用于存储数据库对象。例如,CAD会在创建新图时为数据库创建一个称为命名对象字典的字典。命名对象字典可以看作是所有与数据库相关的字典的“内容表”。用户可以在命名对象字典中创建新的字典,然后在其中添加新的数据库对象。具体地,在 CAD中,字典往往是作为实体对象的补充数据来使用的,换句话说,在现有的 CAD软件中,字典技术是一种对数据进行扩展的方式。例如,图纸上带字段的多行文字,就需要通过字典来把字段和多行文字绑定起来。又例如,利用扩展字典来存储非图形数据(其中,这些非图形数据相当于属性信息,CAD程序的自身属性对话框无法记录的数据)以便于后续提取,具体地,可以向一个多段线(代表一根管线,或是其他)中存储一些施工方面的数据信息,例如施工标段、桩号范围、施工完成时间等,以后再打开图纸的时候,就知道这段管线是哪个施工单位施工的,什么时间完成的等等,便于查看和统计施工数据信息。

而本实施例中优选地通过字典技术实现隐藏加密。其中,加密字典并不是对实体对象进行扩展,而是相当于对数据实现了替换(对实体对象的数据信息进行保存)。因此,本发明实施例中对字典技术的使用(或者说,字典所起到的作用)与现有技术中的实施方式并不相同。

进一步地,在一些实施例中,解密指令包括:第一解密指令,对应地,方法还包括步骤:

响应于用户输入的第一解密指令,字典中所存储的非实体对象进入解密状态;

读取非实体对象中的第二对象基本数据以及第二私有数据;

根据第二对象基本数据以及第二私有数据在文件上重新创建实体对象,使得加密目标处于可见状态。

进一步地,在一些实施例中,解密指令包括:第二解密指令,对应地,方法还包括步骤:

响应于用户输入的第二解密指令,获取字典中所存储的非实体对象;

根据非实体对象创建自定义对象,并将自定义对象设置在文件上的对应的图纸空间。

在一些实施例中,第一、二解密指令可以由查看图纸的用户进行自行输入。

或者,在另一些实施例中,第一、二解密指令的输入/获取这一流程可以由读取图纸的计算机(或其他电子设备)自动实现。具体地,在对图纸的局部内容进行加密时,可以同时设定对应的解密权限,例如,设置权限(如验证信息) 使得图纸中的加密内容可以被一台或多台计算机(或其他电子设备),或一个或多个用户读取。随后,在图纸的读取过程中,当图纸被计算机获取到并进行数据读取时,可以由管理图纸的系统(如用于读取图纸的CAD软件)自主地(或者说,由图纸一方自主地)读取计算机或用户的验证信息(例如,读取计算机中可以用于表明用户或计算机身份的信息,如计算机ID、用户IP地址等)。然后基于验证信息判断计算机或用户是否被授予查看权限,若判断出计算机或用户被授予了查看权限,则基于对应的查看权限(如只读权限,或查看并编辑的权限)允许计算机或用户对图纸的加密数据进行读取。本实施例中,解密的过程无需用户手动操作,可以由计算机自行处理完成以简化用户的操作流程,优化用户体验。

本实施例中,解密指令可以是计算机或用户的验证信息,也可以是在计算机获取到对应的验证信息后,向加密程序发送的预设解密指令。

进一步地,在一些实施例中,未加密的实体对象采用第一显示方式,而针对只读加密的加密目标,采用第二显示方式,从而在视觉上对可编辑的内容、不可编辑的内容进行区分,以更好地帮助用户对图纸的内容进行理解和编辑(例如,哪些是可以编辑的,哪些是不可以编辑的)。根据不同应用场景的情况,所述第一显示和所述第二显示方式可以采用不同的颜色、不同的线条样式(例如,虚实、粗细)、不同的凸显方式(例如,可以让变化元素半透明或处于水印模式)。

近年来,随着建筑业、制造业以及其它使用涉及到制图软件使用的行业的不断发展,使用各类型制图软件尤其是CAD(计算机辅助设计,Computer Aided Design)软件绘制的图纸信息量较以前更大,CAD图纸的文件的数据量也越来越大,由此所需要耗费的加密时间也会更长。尤其是涉及到对一个或多个相关项目中的一批次的相关CAD图纸进行加密时,加密耗时将会更久,严重影响CAD 图纸在管理、保存等过程中的处理效率。本实施例中所提供的局部加密方法可以有效地提高CAD图纸在管理(包括加密处理、文件传输等过程)、保存过程中的处理效率。

此外,与现有技术中的局部加密方式(如一种基于草绘的CAD模型局部加密方法)不同的是,本实施例中的加密方法可以实现对加密目标的隐藏加密。因此,本实施例所提供的方法还可以满足用户对图纸的快速查阅需求。具体地,当用户仅希望关注图纸上的某一些区域的内容时,可以对其他不相关的内容进行隐藏加密,从而使得图纸空间中仅显示用户重点关注的内容,以帮助用户对重点关注内容进行快速查看。

而现有技术中的局部加密方式是对CAD模型(如一个或多个实体对象) 进行只读加密,因此,被加密的CAD模型仍然会占据一定的图纸空间位置,而不是从图纸空间上被隐藏或删除。并且,由于这种加密方式是改变CAD模型中的局部结构的显示效果,以希望使得CAD模型无法被完整地查看与还原,因此这种方式反而还会不利于用户对图纸的查看。尤其是在图纸空间上的图形内容较多时,这种加密方式容易给用户带来一种图纸上的数据发生乱码的错觉(或者说,容易在图纸空间上产生一种空间混乱感),给用户的查看过程带来负面影响。

同时还需要注意的是,现有技术中的这种“只读加密”的模式,与本实施例中的只读加密也完全不相同(如在实现方法和显示效果均不相同)。

在一些实施例中,基于上述方法可以在CAD软件中提供一个数据加密管理器(或数据加密管理框),如图4a-图4c所示,在数据加密管理器中,用户可以选中任意一个实体对象、图块、视口或布局窗口,并对其进行只读加密或隐藏加密。

下面结合一些实际的使用场景中对本发明的技术方案进行进一步地说明:

使用场景1:

如果上游用户/上游设计者不希望下游用户能够看到图纸的私密数据,或者不允许下游用户对图纸的数据进行修改,则可以使用局部加密方法/功能来对想要保护的数据进行加密。经过加密的数据,只有在解密之后,方可进行读写。具体地,可以基于上述加密方法在CAD软件中提供加密管理器,下游用户可以通过加密管理器实现对内容的解密)。此时,上游用户无需将允许下游用户查看或编辑的内容另存一份图纸,提高了上游用户的工作效率。

如图3a、图3b所示,当上游用户不希望下游用户能够看图纸的下方表格区域的内容时,可以隐藏对下方的表格区域,如图3b所示,表格区域不可见。

使用场景2:

对于特别复杂的图纸,可能存在大量某些用户并不关心的内容,对用户浏览图纸造成了很大的困扰。使用本方法,可以把不关心的数据加密隐藏起来,使得界面更加简洁。并且,相关的数据仍然保存在图纸上,不会影响图纸数据的准确性与完整性。

使用场景3:

当上游用户(如项目的主要负责人)需要与多个协同方共同完成一份图纸时,如上游用户负责建筑主体的绘制,协同方I负责暖通部分绘制、协同方II 负责给排水部分的绘制、协同方III负责电气部分的绘制。其中,上游用户具有最高权限,而协同方仅具有部分权限。

但是,其中的一个或多个协同方在绘制各自的部分时又需要参照或参考其他协同方的绘制部分,以保证各部分能够协调工作,此时,上游用户可以将供参考的图纸部分设置为只读加密,以避免协同方在工作过程中不小心对原图进行删改。当然,对于一些保密需求相对较高的内容,可以设置为隐藏加密,当某一个或多个协同方需要查看时,可以向其提供对应的解密指令。此时,加密目标往往是一个或多个图块,或者说,加密主要是以一个或多个图块为单位进行的。例如,暖通部分参照/引用建筑主体绘制而成,因此,暖通部分的内容与建筑主体的内容属于不同的图块,当对暖通部分进行加密时,实际上可以直接对暖通部分所绘制的图块进行加密,操作简便,且加密效率高。

并且,在项目接近完后的后期,可能还需要涉及多轮的修改,此时可以借助上述局部加密的方案实现一份图纸在多方之间的传阅(而无需针对不同的协同方保存不同版本的图纸文件)。具体地,可以基于图纸修改的顺序(例如,先修改A部分,再修改B部分),先将保密图纸传送负责A部分的协同方,待A 部分修改完成后,再将保密图纸传送给负责B部分的协同方,最后由项目的主要负责人对最终的图纸进行完善与审核。在此过程中,局部加密的使用可以保证图纸中的重要部分在前后传输过程中的一致性(重要内容不被修改),同时可以予以用户足够的查看、编辑权限,并且所有的新增修改内容都在相同的图纸文件上作出,保证了修改过程中修改数据的准确性与协同性。

可以理解的是,在字典加密之后对加密目标进行解密时至少要经过两个步骤,一是获取到正确的解密指令,二是根据非实体对象中的数据在图纸空间上重新构建出原来的实体对象。而在自定义技术加密后,获取到正确的解释器就可以看到实体对象,并且,如果获取到具有编辑功能的解释器后,还可以对实体对象进行编辑。在实际应用过程中,上游用户(如设计公司或设计院等)与下游用户(如客户)、协同方等使用方之间的合作可能是长期有效的,因此上游用户与下游用户以及协同方之间可能就多个项目的多张图纸进行往返交流。此时,通常在前期交流时,上游用户就会将特定的解释器(如仅带有查看功能的解释器)提供给下游用户或者协同方。所以在之后的协同交流中,获取到新的文件的下游用户或协同方,即使在合作中未被授予对应的权限,也有可能对文件中被设置为只读加密的加密目标进行查看。

因此,本实施例中,针对加密权限最高的加密目标采用隐藏加密,并且优选地选用字典技术实现加密目标的隐藏加密。针对一些加密权限相对较低的加密目标,则优先选用自定义技术进行只读加密。针对自定义技术实现的只读加密,对于下游用户或者协同方来说,获取到解释器即可以轻松查看到只读加密的加密目标。无论是对于上游用户还是下游用户来说,都无需进行额外的解密操作,操作简便。也即是说,本实施例中,字典技术与自定义技术的相互配合,对用户对于保密的安全性(或保密等级)的需求,以及对操作便捷性(或文件查看便捷性) 的需求之间作出了协调。当然可以理解的是,对于上游用户、下游用户以及协作方以外的无关用户来说,字典技术和自定义技术的加密方式均能够起到对图纸数据进行保密的作用。

在一些实施例中,对字典进行加密可以通过通用的数据加密算法实现。例如,AES(高级加密标准,Advanced Encryption Standard))、DES(对称加密算法,Data EncryptionStandard)、RSA(RSAalgorithm,RSA加密算法)、SHA (安全哈希算法,Secure HashAlgorithm)等常用加密算法。

本实施例中,字典加密技术与各类通用的加密算法共同配合即可以实现对图纸的整体或局部的加密,而无需针对图纸数据设计专用的加密算法,实现方式简单。

本实施例中,所有的数据加密与解密信息均存储在图纸本身,加密方法可以不依赖于网络实现。

实施例二

本发明第二方面在于,还对应于上述方法提供了一种用于CAD文件的局部加密的系统,如图5所示,包括:

文件提供模块10,被配置为用于提供文件,文件包括:多个实体对象;

目标获取模块20,被配置为用于响应于用户的操作获取至少一个待加密的加密目标,加密目标包括:至少一个实体对象;

加密模块30,被配置为用于响应于用户的操作对加密目标进行加密,使得加密目标转为对应的加密状态,且加密状态包括:第一加密状态;其中,加密模块30包括:第一加密单元31,所述第一加密单元31进一步地包括:

加密字典创建单元,被配置为用于在所述加密状态为第一加密状态时,建立至少一个加密字典,所述加密字典中的内容可通过解密指令实现数据读取;

非实体对象获取单元,被配置为用于获取至少一个非实体对象,所述非实体对象中写入有用于描述所述加密目标的数据;

加密实现单元,被配置为用于将所述非实体对象存储至所述加密字典中,并删除所述加密目标,从而使得所述加密目标处于所述第一加密状态。

在一些实施例中,所述非实体对象获取单元进一步地包括:

第一子单元,被配置为用于基于所述加密目标创建至少一个非实体对象;

第二子单元,被配置为用于对应地分析并读取所述实体对象的数据信息,所述数据信息包括:第一对象基本数据、显示数据以及特征数据;

第三子单元,被配置为用于将所述数据信息对应地写入所述非实体对象中,其中,完成数据写入后的非实体对象的数据结构包括:第二对象基本数据以及第二私有数据,且所述第二对象基本数据包括:所述第一对象基本数据,所述第二私有数据完整地继承了所述第二对象基本数据,且所述第二私有数据还包括:所述显示数据以及特征数据。

在一些实施例中,“非实体对象”包括:图层,文字样式,标注样式等数据。其中,“样式”指的是用于分类和定义特定几何和文本元素(例如线样式或文本样式)的属性命名集合,如文字样式是一些列文字需要用到的特性集合。例如,块表记录为非实体对象,快参照为由块表记录生成的实体对象。

在一些实施例中,加密状态还包括:第二加密状态,对应地,加密模块还包括:

第二加密单元32,被配置为用于当加密状态为第二加密状态时,获取加密目标中的实体对象;将实体对象转化为自定义对象,当向用户提供用于显示自定义对象的解释器之后,实体对象处于可见状态。

在一些实施例中,第一加密单元进一步地包括:

字典建立子单元,被配置为用于在文件上建立至少一个字典,字典用于存储非实体对象;对字典进行加密,并对应地获取到用于对字典实现解密的至少一个解密指令,从而得到所述加密字典。

在一些实施例中,解密指令包括:第一解密指令,对应地,系统还包括:

第一解密模块,被配置为用于响应于用户输入的第一解密指令,字典中所存储的非实体对象进入解密状态;读取所述非实体对象中的第二对象基本数据以及第二私有数据;根据第二对象基本数据以及第二私有数据在文件上重新创建实体对象,使得加密目标处于可见状态。

在一些实施例中,解密指令包括:第二解密指令,对应地,系统还包括:

第二解密模块,被配置为用于响应于用户输入的第二解密指令,获取字典中所存储的非实体对象;

根据非实体对象创建自定义对象,并将自定义对象设置在文件上的对应的图纸空间。

优选地,本实施例中的加密系统通过字典技术与自定义技术的结合,提供了包括隐藏加密和只读加密的综合性加密方案,使得字典技术与自定义技术的优势与应用场景的需求相互结合,既满足了用户在不同应用场景(例如,多方协同的场景)以及不同加密目的下的使用需求,同时保证了加密数据的安全性、准确性。

例如,当涉及多方协同的用户分别涉及到不同的工种时,最上游的用户 (项目主要负责人)可以以工种为单位,对图纸进行局部加密。具体地,对不同工种的作图区域单独地进行局部加密。

并且,本发明中通过自定义技术实现的只读方案,不会影响每个实体对象的特殊数据的浏览,其中,特殊数据的包括:实体类型、构成实体的一些重要数据,比如圆心、半径等。也即是说本发明中的只读加密的功能重在防止修改,但是对于重要的特殊数据可以浏览(例如,借助于解释器以及CAD平台来查看)。

实施例三

本发明第三方面在于,基于上述实施例一所提供的方法,进一步地提供了一种用于CAD文件的局部加密的方法,包括上述步骤S10、S20、S30。与上述实施例一不同的是,步骤S30的具体实施方式不同。

例如,在一些实施例中,S30中的使得加密目标转化为对应的加密状态的步骤包括:

创建至少一个第一加密字典,所述第一加密字典用于存储所述实体对象的识别标志(如ID)、以及所述实体对象所在的第一图层(也即原图层)的识别标志(如ID);

在文件上创建至少一个新的图层,在图层上设置隐藏标志,并将图层设置为冻结状态;

获取加密目标中的实体对象,将实体对象所在的图层修改为隐藏图层,并将实体对象及其原图层的识别标志保存在加密字典中。

在一些实施例中,当需要对保密内容进行解密时,根据第一加密字典中保存的实体对象和原图层的识别标志,将实体的图层修改为原图层即可,并可将字典中保存的信息删除。

在一些实施例中,对图层进行只读加密的步骤包括:

创建一个至少一个第二加密字典,其中,第二加密字典是用来保存处于第二加密状态的实体ID及原图层ID、新的处于锁定状态的隐藏图层;

由实体的原图层克隆一个新的图层,设置隐藏标志,并设置成锁定状态;

获取加密目标对应的实体,设置克隆的新的图层,并把实体ID、新旧图层ID记录于第二加密字典中。

进一步地,在一些实施例中,对只读内容选择解密时,把实体对应的图层ID还原成旧的,并删除响应信息。

本实施例中的图层加密方式加密过程简单,且在此加密方式下CAD文件的大小变化不会太大(利于文件的传输与存储)。

本实施例中通过字典加密技术与图层结合,以实现对CAD文件的局部加密。如图6a-图6c所示,图层中有至少两个功能,如冻结、锁定。其中,处在锁定图层上的对象只可读,不可编辑;处在冻结图层上的对象,则隐藏了。图 6b中左侧的圆的图层为图层1,将其设为冻结打开,右侧的圆为图层2,将其设为锁定打开。设定之后的显示效果如图6c所示,此时左侧的圆处于隐藏状态,右侧的圆仍然可见,但是不可编辑。

进一步地,在一些实施例中,对于只读状态(可见不可编辑)的图形可以采用特殊的样式显示,以使得只读加密的图形与其他普通图形从视觉上便于区分,从而有助于用户进行编辑操作。

对应于实施例三中的任一中加密方法,本发明还提供一种加密系统。

实施例四

本发明的第四方面,在于提供了一种体现在非暂时性计算机可读介质中的计算机程序产品,所述计算机程序产品被编程以用于CAD文件的局部加密,所述计算机程序产品包括用于执行上述实施例一种任一所述方法的操作的指令。

例如,在一些实施例中,所述计算机程序产品包括用于以下操作的指令:提供文件,所述文件包括:多个实体对象;响应于用户的操作获取至少一个待加密的加密目标,所述加密目标包括:至少一个实体对象;响应于用户的操作对所述加密目标进行加密,使得所述加密目标转为对应的加密状态,且所述加密状态包括:第一加密状态;其中,当所述加密状态为第一加密状态时,加密目标转为对应的加密状态的步骤包括:建立至少一个加密字典,所述加密字典可以通过解密指令实现数据读取;获取至少一个非实体对象,所述非实体对象中写入有用于描述所述加密目标的数据信息;将所述非实体对象存储至所述加密字典中,并删除所述加密目标,从而使得所述加密目标处于所述第一加密状态。

用于实现本发明的一个或多个实施例的示例性硬件和软件环境包括计算机,其可以是用户/客户端计算机、服务器计算机,也可以是数据库计算机。计算机包括处理器和存储器,如随机存取存储器(RAM)。计算机可以与其他设备耦合和/或集成,包括输入/输出(I/O)设备,如键盘、光标控制设备(如鼠标、指向设备、笔和平板电脑、触摸屏、多点触控设备等)和打印机。在一个或多个实施例中,计算机可以耦合到或组成便携式或媒体观看/收听设备(例如,MP3播放器、iPod

在一个实施例中,计算机通过通用处理器操作,在操作系统的控制下执行由计算机程序定义的指令。计算机程序和/或操作系统可存储在存储器中,并可与用户和/或其他设备连接以接受输入和命令,并根据计算机程序和操作系统所定义的输入和命令和指令,提供输出和结果。

计算机根据计算机程序指令所执行的部分或全部操作可以在专用处理器中实现。在本实施例中,计算机程序的部分或全部指令可以通过存储在只读存储器(ROM)、可编程只读存储器(PROM)或闪存中的固件指令实现,该只读存储器位于专用处理器或存储器中。还可以通过电路设计对专用处理器进行硬连线,以执行实现本发明的部分或全部操作。此外,专用处理器可能是一种混合处理器,它包括用于执行功能子集的专用电路,以及用于执行更通用的功能(如响应计算机程序指令)的其他电路。在一个实施例中,专用处理器是一种应用专用集成电路(ASIC)。

计算机也可以实现编译器,它允许用编程语言(如COBOL、Pascal、c++、 FORTRAN或其他语言)编写的应用程序或计算机程序被翻译成处理器可读的代码。或者,编译器可以是一个解释器,它可以直接执行指令/源代码,将源代码转换为要执行的中间表示,或者执行存储的预编译代码。这样的源代码可以用各种编程语言编写,如Java

计算机还可选地包括外部通信设备,如调制解调器、卫星链路、以太网卡或用于从其他计算机接受输入并向其提供输出的其他设备。

在一个实施例中,实现操作系统、计算机程序和编译器的指令有形地包含在非瞬态计算机可读介质中,例如,数据存储设备,该介质可以包括一个或多个固定或可移动的数据存储设备,例如压缩驱动器、软盘驱动器、硬盘驱动器、 CD-ROM驱动器、磁带驱动器等。此外,操作系统和计算机程序由计算机程序指令组成,当计算机访问、读取和执行这些指令时,会使计算机执行必要的步骤。

当然,这方面的技术人员会认识到,上述组件的任意组合,或任意数量的不同组件、外设和其他设备,都可能与计算机一起使用。

分布式计算机系统使用网络将客户机计算机连接到服务器计算机。典型的资源组合可能包括网络,其中包括Internet、lan(局域网)、wan(广域网)、SNA(系统网络体系结构)网络,或者类似的个人计算客户端。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台计算机终端(可以是手机,计算机,服务器,或者网络设备等) 执行本发明各个实施例的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

技术分类

06120116130957