数据处理方法、系统、计算机设备及存储介质与流程
未命名
07-13
阅读:52
评论:0
1.本发明涉及加密解密领域,尤其涉及一种数据处理方法、系统、计算机设备及存储介质。
背景技术:
2.现有的技术中,对于固定密钥而言,密钥是固定的,因此不会更换密钥,所以存在一定风险,而使用了动态密钥,加密结果不再唯一,数据将失去唯一性,无法实现存在性确认,或数据关联操作,同时对于开发人员来讲,会使用一些拦截器工具来对数据库中的数据进行操作,此时的加解密操作既要满足安全性,有不能影响开发人员使用拦截器对数据进行的操作。
技术实现要素:
3.第一方面,本技术提供了一种数据处理方法,应用于应用系统,包括:当系统启动时,向密钥管理服务获取密钥数据,并保存至本地密钥池;若接收到所述密钥管理服务发送的密钥更新信息,则向所述密钥管理服务申请密钥更新操作;当进行数据加密时,从本地保存的密钥池中获取密钥,通过所述密钥对待加密数据进行第一次加密,然后将所述密钥的序列号加入到所述第一次加密的结果中,并进行第二次加密,然后将所述第二次加密后的数据加密结果存入到数据库中。
4.进一步的,所述向所述密钥管理服务申请密钥更新操作后,还包括:接受来自所述密钥管理服务发送的更新密钥;当所述密钥管理服务中的密钥发生更新,所述应用系统向所述密钥管理服务器发送更新请求,并接收所述密钥管理服务最新的密钥数据;将接受到的最新的密钥数据替换本地密钥池中的密钥数据。
5.进一步的,所述方法还包括:当进行解密时,从所述数据库中获取待解密的加密数据;根据所述第二次加密的方式进行解密,得到第一次解密后的第一密文,从所述第一密文中得到所述密钥的序列号;根据所述序列号从所述密钥池中获取对应的真实密钥,并根据所述真实密钥进行第二次解密,得到解密数据。
6.进一步的,所述当进行加密前,还包括:若待加密或待解密的原始数据被拦截器拦截时,通过入参判断,若入参为 mybatis plus 所提供的 wrapper 封装类,则对 所述原始数据 进行克隆,对克隆后的数据进行判断,确定所述明文是否要加密,若所述原始数据需要加密,则将需要加密的标签打入所述原始数据中,然后对所述原始数据进行加密操作。
7.进一步的,所述然后将所述第二次加密后的加密结果存入到数据库中,包括:
对所述待加密数据进行哈希运算,生成对应的哈希字段,所述哈希字段作为所述加密结果的唯一性索引,与所述加密结果绑定保存至所述数据库中。
8.第二方面,本技术还提供一种数据处理方法,应用于密钥管理服务,包括:当接收到来自应用系统的加载请求时,将密钥数据发送给所述应用系统;当接受到所述应用系统的更新请求时,将最新的密钥数据发送给所述应用系统。
9.进一步的,所述方法还包括:当所述密钥管理服务中的密钥发生更新时,所述密钥管理服务会自动备份更新后的密钥,并将备份的密钥进行加密;在所述密钥更新完成后,所述密钥管理服务广播密钥更新信息给接入所述密钥管理服务的应用系统。
10.第三方面,本技术还提供一种数据处理系统,包括应用系统和密钥管理服务:所述应用系统用于当系统启动时,向密钥管理服务获取密钥信息;若接收到所述密钥管理服务发送的密钥更新信息,则向所述密钥管理服务申请密钥更新操作;所述应用系统还用于当进行数据加密时,从本地保存的密钥池中获取密钥,通过所述密钥对待加密数据进行第一次加密,然后将所述密钥的序列号加入到所述第一次加密的结果中,并进行第二次加密,然后将所述第二次加密后的数据加密结果存入到数据库中;所述密钥管理服务用于当接收到来自应用系统的加载请求时,将密钥列表发送给所述应用系统;当所述密钥管理服务接受到所述应用系统的更新请求时,将最新的密钥发送给所述应用系统。
11.第四方面,本技术还提供一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行所述的数据处理方法。
12.第五方面,本技术还提供一种可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时执行所述的数据处理方法。
13.本发明公开了一种数据处理方法、系统、计算机设备及存储介质。该方法应用于应用系统,包括:当系统启动时,向密钥管理服务获取密钥数据,并保存至本地密钥池;若接收到所述密钥管理服务发送的密钥更新信息,则向所述密钥管理服务申请密钥更新操作;当进行数据加密时,从本地保存的密钥池中获取密钥,通过所述密钥对待加密数据进行第一次加密,然后将所述密钥的序列号加入到所述第一次加密的结果中,并进行第二次加密,然后将所述第二次加密后的数据加密结果存入到数据库中。通过独立的密钥管理服务实现对密钥的灵活管理,并且密钥可以更新,以增加存储数据的稳定性和安全性,减少因为只使用一套密钥而导致被破解的情况。
附图说明
14.为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
15.图1示出了本技术实施例一种数据处理方法流程示意图;图2示出了本技术实施例又一种数据处理方法流程示意图;
图3示出了本技术实施例一种解密方法流程示意图;图4示出了本技术实施例一种数据处理系统结构示意图。
具体实施方式
16.下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
17.通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
18.在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
19.此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
20.除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。
21.本技术的技术方案应用于对数据的加密存储和解密读取的过程中,可以理解对于一些类似银行的金融系统,因为业务原因从而不得不保存大量的敏感数据,因此通过安全等考量,在存储这些数据时不能明文存储,而是经过加密后用密文存储。本技术通过一个密钥管理服务来独立动态的管理用于加密的密钥,业务系统获取密钥后对数据进行加解密操作,从而实现动态加密和解密操作。以确保文件数据的安全。
22.接下来以具体实施方式说明本技术的技术方案。
23.实施例1如图1所示,本实施例的数据处理方法应用于应用系统,包括:步骤s100,当系统启动时,向密钥管理服务获取密钥数据,并保存至本地密钥池。
24.应用系统指的是实际对应不同业务的业务系统的集合,以银行相关业务为例,该应用系统可以包括审批系统、贷款系统或者存款系统等不同性质的业务系统,这些业务系统都会涉及到存储用户数据的情况,因此都会需要进行加解密操作。可以理解的是,应用系统种类繁多,而且会存在大量的与外界的信息交互,因此会需要多次的对数据进行解密和加密操作,所以每次加解密都依靠线上加密是明显不合适的,因此业务系统本地会存储一份密钥管理服务中存储的密钥。
25.任意的应用系统在刚刚启动时,会向密钥管理服务获取当前的密钥列表,从而得知密钥管理服务中存储的密钥种类是哪些,进而可以根据该密钥列表和本地存储的密钥池
中的密钥进行匹配。
26.步骤s200,若接收到所述密钥管理服务发送的密钥更新信息,则向所述密钥管理服务申请密钥更新操作。
27.密钥管理服务为一个专门用于管理密钥的独立应用,通过数据库存储和维护多个密钥,提供对密钥的增删改查功能。
28.密钥管理服务会更新密钥,当更新完密钥后,密钥管理服务中存储的密钥就和应用系统中的不同,因此在更新之后,会通过广播的方式向所有的应用系统发送密钥更新信息,以告知应用系统密钥更新了,应用系统接收到该广播时,就知道需要获取新密钥了,应用系统会向密钥管理服务发送更新请求,从而从密钥管理服务中下载最新的密钥版本,以此来维持本地密钥池中的密钥为最新的。
29.步骤s300,当进行加密时,从本地保存的密钥池中获取密钥,通过所述密钥对待加密数据进行第一次加密,然后将所述密钥的序列号加入到所述第一次加密的结果中,并进行第二次加密,然后将所述第二次加密后的加密结果存入到数据库中。
30.需要进行数据加密的场景,通常是接收到一些需要存储的数据,这些数据需要以密文的方式存在数据库中,因此会需要加密操作。每次数据的加密其实都是一个独立的事件,所以每次加密时,所使用的密钥可以是不一样的,以此来增加数据的安全性。
31.且本实施例中,该应用系统的密钥池中存储了密钥管理服务中的所有密钥,因此可以通过随机选取密钥的方式,在每次进行加密操作时,都随机获得密钥来对待加密数据进行加密。
32.本实施例的加密分为多个步骤,首先获取到密钥后,使用该密钥对需要存储的明文进行第一次加密,可以理解该加密可以是如aes之类的对称加密算法,然后,再将该密钥的序列号加入到第一次加密后的结果中,例如第一次加密得到的密文字符串是“abcde”,密钥的序列号是13,则将序列号加入后得到“abcde13”的字符串。
33.可以理解,密钥的序列号添加入第一次加密的结果中可以是如上述例子中的在尾部追加,也可以是按照顺序插入字符串中,也可以是其他方式将序列号加入第一次加密的结果中。
34.加入序列号后,然后再进行第二次加密,此时第二次加密可以是一种简单的不需要密钥的加密,例如base64之类的方式,由此经过两重加密后,得到的密文就是最终的密文。存入数据库中的数据便是该密文。
35.同时因为密钥是随机获取的,因此针对同一个数据,可能两次存储操作中加密得到的密文不同,因此本实施例在进行加密时,除了上述二重加密外,还会额外对明文进行哈希计算,例如使用md5加密方式处理明文以得到一个不可逆的唯一性哈希字段,该哈希字段和上述两次加密后得到的密文绑定存储到数据库中,由此数据库内需要搜索数据时,可以通过该哈希字段进行确认,即便同一个数据使用了不同的加密方式,因为哈希字段的唯一性,所以以该哈希字段所谓索引,可以精确检索和匹配到对应的密文,从而支持进行接下来的修改等操作。
36.此外,如图2所示,本实施例也提供解密方法:步骤s400,当进行解密时,从数据库中获取待解密的加密数据。
37.解密操作一般应用从数据库中提取数据,然后放到前端展示或者提取数据进行计
算等操作,此时就需要将密文解密成明文。
38.步骤s500,根据所述第二次加密的方式进行解密,得到第一次解密后的第一密文,从所述第一密文中得到所述密钥的序列号。
39.解密的步骤和上述加密步骤相反即可,因为本实施例中的加密方式中最后一步是使用对称加密方式简单加密,所以使用该方式进行解密就可以得到包含有密钥序列号的第一密文。
40.密钥的序列号的获取方式和密钥的序列号添加相关,例如密钥的序列号添加时是添加在密文的尾部,则截取密文尾部的字符,获取序列号。
41.步骤s600,根据所述序列号从所述密钥池中获取对应的真实密钥,并根据所述真实密钥进行第二次解密,得到解密数据。
42.密钥的序列号就是密钥的索引,因此通过密钥的序列号就可以获取到对应的密钥,然后根据该密钥,对第一密文进行第二次解密,由此得到最终的明文。
43.在实际的生产环境中,开发人员往往为了方便对数据库的使用,会使用一些插件来简化操作,例如使用mybatis插件,该插件会提供对数据库中提取的数据拦截操作,以供开发人员获取数据库的数据然后进行专门的渲染操作,但是在数据入库加密的步骤中,被mybatis拦截数据并进行解析后,会对数据造成不可逆的更改,因此就无法再对渲染后的数据进行加密或者解析操作,因此对于应用了这类场景的应用系统来讲,解析后就会出现不可预知的变化以致系统异常。
44.为此,若所述待加解密的数据被mybatis的拦截器技术拦截时,若遇到入参为mybatis plus 的 wrapper 数据封装体,则通过克隆的方式将待加密数据进行克隆,然后将克隆后的数据进行解析,确定该数据是否要加密,确定后将该解析结果附加在原数据上,让数据进行接下来的操作。
45.即当mybatis拦截到mybatis plus 的 wrapper 类型入参的数据包,本实施中会将该数据进行克隆操作,得到另一份一模一样的数据,然后对该数据进行上述的解析操作,从而得到该数据对应的操作需求,而原本的数据则不进行解析,在得到解析结果后,根据解析结果进行加密或者解密操作或者不执行加解密而是其他的业务操作。从而使得加解密操作不会因为mybatis plus插件而被影响,保证明文的获得。
46.如图3所示,为应用于密钥管理服务的数据处理方法,包括:步骤s700,当接收到来自应用系统的加载请求时,将密钥列表发送给所述应用系统。
47.密钥管理服务是一个用于管理密钥的应用,其主要是通过数据库对密钥进行增删改查的操作,以维护多个密钥,当应用系统上线时,会向密钥管理服务申请获取当前的密钥列表,密钥管理服务会根据该申请,将密钥列表发送给对应的应用系统。
48.步骤s800,当接受到所述应用系统的更新请求时,将最新的密钥数据发送给所述应用系统。
49.当应用系统接收到密钥管理服务发送的密钥更新信息时,会向密钥管理服务申请更新密钥,此时密钥管理服务会将当前最新的密钥数据都发送给应用系统。
50.此外,密钥管理服务也存在自身在线更新密钥的情况,因此当更新结束后,密钥管理服务会自动备份更新后的密钥,并将备份的密钥进行加密;
在所述密钥更新完成后,所述密钥管理服务会以广播的形式将最新的密钥发送给接入所述密钥管理服务的应用系统。也就是说,当密钥管理系统对密钥的更新结束后,会立刻进行一次同步,确保在线的应用系统可以立刻用上更新后的密钥,确保各个应用系统的稳定性。
51.需要说明的是,本实施例的密钥管理系统中存储的密钥可以对应不同的加解密方式,例如当前存了10个密钥,每个密钥对应和某种加密方式绑定存储,当应用系统调用对应密钥进行加密操作时,可以读取该密钥对应的加密方式,从而进行加密,解密时因为嫌获取密钥序列号然后获取密钥,同样可以得到密钥对应的加密方式,从而得到对应的解密方式来进行解密。
52.本实施例中的动态密钥加解密方法从应用系统以及密钥管理服务两个方向说明了加解密的方法流程,以及后台对密钥的管理方法,通过独立的密钥管理服务专门处理密钥的存储和更新,可以有效的确保密钥的安全,并且每个密钥都有备份,可以避免密钥丢失导致数据无法解密的情况。同时应用系统每次上线会获取全部的密钥数据,并且密钥管理服务在自身密钥更新时会自动广播下发密钥,确保了各个应用系统中的密钥都是最新的,确保系统内密钥使用的同一性。同时在针对某些工具脚本,例如使用mybatis时,可以通过拦截器方式,在不干扰插件正常功能的情况下,进行数据的加解密操作,使得本实施例的加解密方法可以适配一些复杂的使用场景。
53.实施例2如图4所示,本技术还提供一种数据处理系统,包括应用系统200和密钥管理服务100。
54.所述应用系统200用于当系统启动时,向密钥管理服务申请加载密钥数据,并在接收到密钥管理服务100发送的密钥更新信息时,则向所述密钥管理服务100申请密钥更新操作;所述应用系统200还用于当进行加密时,从本地保存的密钥池中获取密钥,通过所述密钥对待加密数据进行第一次加密,然后将所述密钥的序列号加入到所述第一次加密的结果中,并进行第二次加密,然后将所述第二次加密后的加密结果存入到数据库中。
55.所述密钥管理服务100用于当接收到来自应用系统200的加载请求时,将密钥列表发送给所述应用系统;当所述密钥管理服务100接受到所述应用系统的更新请求时,将最新的密钥发送给所述应用系统。
56.从图4中可见,密钥管理服务为单一独立的模块,而应用系统200其实包含了多个业务系统,这些业务系统为和实际业务相关的业务系统,应用系统200为这些业务系统的集合。密钥管理服务100通过和应用系统200通信,实现密钥的下发和更新操作,同时又是一个独立的服务管理密钥,且该服务不和外界交互,因此具有较高的安全性,因此即便当发生密钥被破解的情况时,也可以通过后台修改密钥管理服务内的密钥实现密钥更新,以确保数据的安全。
57.此外,本技术还提供一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行所述的数据处理方法。该计算机设备可以是电脑也可以是服务器等可以运载上述方法的计算机设备。
58.本技术还提供一种可读存储介质,其存储有计算机程序,所述计算机程序在处理
器上运行时执行所述的数据处理方法。
59.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
60.另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
61.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
62.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
技术特征:
1.一种数据处理方法,其特征在于,应用于应用系统,包括:当系统启动时,向密钥管理服务获取密钥数据,并保存至本地密钥池;若接收到所述密钥管理服务发送的密钥更新信息,则向所述密钥管理服务申请密钥更新操作;当进行数据加密时,从本地保存的密钥池中获取密钥,通过所述密钥对待加密数据进行第一次加密,然后将所述密钥的序列号加入到所述第一次加密的结果中,并进行第二次加密,然后将所述第二次加密后的数据加密结果存入到数据库中。2.根据权利要求1所述的数据处理方法,其特征在于,所述向所述密钥管理服务申请密钥更新操作后,还包括:接受来自所述密钥管理服务发送的更新密钥,当所述密钥管理服务中的密钥发生更新,所述应用系统向所述密钥管理服务发送更新请求,并接收所述密钥管理服务最新的密钥数据;将接受到的最新的密钥数据替换本地密钥池中的密钥数据。3.根据权利要求1所述的数据处理方法,其特征在于,还包括:当进行解密时,从所述数据库中获取待解密的加密数据;根据所述第二次加密的方式进行解密,得到第一次解密后的第一密文,从所述第一密文中得到所述密钥的序列号;根据所述序列号从所述密钥池中获取对应的真实密钥,并根据所述真实密钥进行第二次解密,得到解密数据。4.根据权利要求1所述的数据处理方法,其特征在于,所述当进行数据加密前,还包括:若待加密或待解密的原始数据被拦截器拦截时,通过入参判断,若入参为 mybatis plus 所提供的 wrapper 封装类,则对 所述原始数据 进行克隆,对克隆后的数据进行判断,确定所述原始数据是否要加密,若所述原始数据需要加密,则将需要加密的标签打入所述原始数据中,然后对所述原始数据进行加密操作。5.根据权利要求1所述的数据处理方法,其特征在于,所述然后将所述第二次加密后的加密结果存入到数据库中,包括:对所述待加密数据进行哈希运算,生成对应的哈希字段,所述哈希字段作为所述加密结果的唯一性索引,与所述加密结果绑定保存至所述数据库中。6.一种数据处理方法,其特征在于,应用于密钥管理服务,包括:当接收到来自应用系统的加载请求时,将密钥数据发送给所述应用系统;当接受到所述应用系统的更新请求时,将最新的密钥数据发送给所述应用系统。7.根据权利要求6所述的数据处理方法,其特征在于,还包括:当所述密钥管理服务中的密钥发生更新时,所述密钥管理服务会自动备份更新后的密钥,并将备份的密钥进行加密;在所述密钥更新完成后,所述密钥管理服务广播密钥更新信息给接入所述密钥管理服务的应用系统。8.一种数据处理系统,其特征在于,包括应用系统和密钥管理服务:所述应用系统用于当系统启动时,向密钥管理服务获取密钥信息;若接收到所述密钥管理服务发送的密钥更新信息,则向所述密钥管理服务申请密钥更
新操作;所述应用系统还用于当进行数据加密时,从本地保存的密钥池中获取密钥,通过所述密钥对待加密数据进行第一次加密,然后将所述密钥的序列号加入到所述第一次加密的结果中,并进行第二次加密,然后将所述第二次加密后的数据加密结果存入到数据库中;所述密钥管理服务用于当接收到来自应用系统的加载请求时,将密钥列表发送给所述应用系统;当所述密钥管理服务接受到所述应用系统的更新请求时,将最新的密钥发送给所述应用系统。9.一种计算机设备,其特征在于,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行权利要求1至7中任一项所述的数据处理方法。10.一种可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序在处理器上运行时执行权利要求1至7中任一项所述的数据处理方法。
技术总结
本发明涉及加密解密领域,公开了一种数据处理方法、系统、计算机设备及存储介质。该方法应用于应用系统,包括:当系统启动时,向密钥管理服务获取密钥数据,并保存至本地密钥池;若接收到所述密钥管理服务发送的密钥更新信息,则向所述密钥管理服务申请密钥更新操作;当进行数据加密时,从本地保存的密钥池中获取密钥,通过所述密钥对待加密数据进行第一次加密,然后将所述密钥的序列号加入到所述第一次加密的结果中,并进行第二次加密,然后将所述第二次加密后的数据加密结果存入到数据库中。以实现对密钥的灵活管理,并且密钥可以更新,增加稳定性和安全性。增加稳定性和安全性。增加稳定性和安全性。
技术研发人员:王开存 沈晓平 孔海明 张锐
受保护的技术使用者:天津金城银行股份有限公司
技术研发日:2023.06.12
技术公布日:2023/7/12
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
