文件传输方法、装置、计算机设备和存储介质与流程

未命名 09-10 阅读:67 评论:0


1.本技术涉及数据安全技术领域,特别是涉及一种文件传输方法、装置、计算机设备、存储介质和计算机程序产品。


背景技术:

2.随着金融业务的不断发展,金融机构除了机构内部的文件交互,还需要与外部场景方进行文件交互。
3.由于金融机构与外部场景方之间进行通讯的网络环境较为复杂,为了提高文件传输过程的安全性,传统技术中,一般通过以下方案进行文件传输:一是对文本内容按行进行加密,二是计算文件内容的md5(message-digest algorithm5,信息-摘要算法5)值以防篡改。但第一种方案只能针对文本文件进行逐行加密,不适用于超大文件的传输,第二种方案在非安全的网络环境下,存在文件被截取的风险。此外,在传统的文件传输过程中,需要耗费一定的缓存时间,将文本完全落盘后才能进行加解密,对内存和磁盘空间要求较大,也会大大增加传输时间,尤其是在传输超大文件的过程中,会导致传输效率不高。
4.因此,传统技术中的文件传输方案,在传输超大文件的过程中,无法确保超大文件的传输安全性,且需要提高传输效率。


技术实现要素:

5.基于此,有必要针对上述技术问题,提供一种能够确保超大文件的传输安全性,且能提高传输效率的文件传输方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
6.第一方面,本技术提供了一种文件传输方法。所述方法包括:
7.将文件转换为数据输入流,从数据输入流中读取文件对应的多个原始数组;
8.对每一原始数组分别进行编码处理,得到各原始数组各自对应的编码数组;
9.针对每一编码数组,对编码数组进行加密处理得到加密数组,并确定输出加密数组的子输出流;
10.基于子输出流、以及加密处理过程中使用的加密密钥,确定编码数组对应的传输消息;
11.依次传输各编码数组各自对应的传输消息。
12.在其中一个实施例中,对编码数组进行加密处理得到加密数组,包括:
13.获取随机生成的加密密钥;
14.基于加密密钥对编码数组进行加密处理,得到加密数组。
15.在其中一个实施例中,基于子输出流、以及加密处理过程中使用的加密密钥,确定编码数组对应的传输消息,包括:
16.获取加密处理过程中使用的加密密钥,确定加密密钥对应的密钥信息;
17.对子输出流和密钥信息进行消息组装,得到编码数组对应的传输消息。
18.在其中一个实施例中,确定加密密钥对应的密钥信息,包括:
19.获取接收端公钥;
20.基于接收端公钥,对加密密钥进行加密处理,得到加密密钥对应的密钥信息。
21.在其中一个实施例中,对子输出流和密钥信息进行消息组装,得到编码数组对应的传输消息,包括:
22.将编码数组对应的子输出流,作为编码数组对应的传输消息的消息主体;
23.基于子输出流对应的加密数组的长度,确定编码数组对应的传输消息的标头长度;
24.按照标头长度,将密钥信息配置为编码数组对应的传输消息的消息标头;
25.基于消息主体与消息标头,生成编码数组对应的传输消息。
26.第二方面,本技术提供了一种文件接收方法。所述方法包括:
27.依次接收多个传输消息;
28.针对每一传输消息,确定传输消息对应的子输出流、子输出流所输出的加密数组、以及加密数组的加密密钥;
29.基于加密密钥对加密数组进行解密处理,得到编码数组;
30.对编码数组进行解码处理,得到传输消息对应的原始数组;
31.确定与多个传输消息各自对应的原始数组匹配的文件。
32.在其中一个实施例中,确定传输消息对应的子输出流、子输出流所输出的加密数组、以及加密数组的加密密钥,包括:
33.对传输消息进行消息拆分,确定传输消息对应的子输出流、子输出流所输出的加密数组、以及密钥信息;
34.对密钥信息进行解密处理,得到加密数组的加密密钥。
35.在其中一个实施例中,对传输消息进行消息拆分,确定传输消息对应的子输出流、子输出流所输出的加密数组、以及密钥信息,包括:
36.对传输消息进行解析处理,得到传输消息的消息主体和消息标头;
37.基于消息主体以及消息标头的标头长度,获得传输消息对应的子输入流、以及子输出流所输出的加密数组;
38.基于消息标头,获得传输消息对应的密钥信息。
39.第三方面,本技术提供了一种文件传输装置。所述装置包括:
40.文件转换模块,用于将文件转换为数据输入流,从数据输入流中读取文件对应的多个原始数组;
41.数组编码模块,用于对每一原始数组分别进行编码处理,得到各原始数组各自对应的编码数组;
42.数组加密模块,用于针对每一编码数组,对编码数组进行加密处理得到加密数组,并确定输出加密数组的子输出流;
43.消息确定模块,用于基于子输出流、以及加密处理过程中使用的加密密钥,确定编码数组对应的传输消息;
44.消息传输模块,用于依次传输各编码数组各自对应的传输消息。
45.在其中一个实施例中,数组加密模块还用于获取随机生成的加密密钥;基于加密
密钥对编码数组进行加密处理,得到加密数组。
46.在其中一个实施例中,消息确定模块还用于:获取加密处理过程中使用的加密密钥,确定加密密钥对应的密钥信息;对子输出流和密钥信息进行消息组装,得到编码数组对应的传输消息。
47.在其中一个实施例中,所述装置还包括:
48.密钥信息获得模块,用于获取接收端公钥;基于接收端公钥,对加密密钥进行加密处理,得到加密密钥对应的密钥信息。
49.在其中一个实施例中,所述装置还包括:
50.消息生成模块,用于将编码数组对应的子输出流,作为编码数组对应的传输消息的消息主体;基于子输出流对应的加密数组的长度,确定编码数组对应的传输消息的标头长度;按照标头长度,将密钥信息配置为编码数组对应的传输消息的消息标头;基于消息主体与消息标头,生成编码数组对应的传输消息。
51.第四方面,本技术提供了一种文件接收装置,所述装置包括:
52.消息接收模块,用于依次接收多个传输消息;
53.消息拆分模块,用于针对每一传输消息,确定传输消息对应的子输出流、子输出流所输出的加密数组、以及加密数组的加密密钥;
54.数组解密模块,用于基于加密密钥对加密数组进行解密处理,得到编码数组;
55.数组解码模块,用于对编码数组进行解码处理,得到传输消息对应的原始数组;
56.文件确定模块,用于确定与多个传输消息各自对应的原始数组匹配的文件。
57.在其中一个实施例中,消息拆分模块还用于:对传输消息进行消息拆分,确定传输消息对应的子输出流、子输出流所输出的加密数组、以及密钥信息;对密钥信息进行解密处理,得到加密数组的加密密钥。
58.在其中一个实施例中,所述装置还包括:
59.消息解析模块,用于对传输消息进行解析处理,得到传输消息的消息主体和消息标头;基于消息主体以及消息标头的标头长度,获得传输消息对应的子输入流、以及子输出流所输出的加密数组;基于消息标头,获得传输消息对应的密钥信息。
60.第五方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
61.将文件转换为数据输入流,从数据输入流中读取文件对应的多个原始数组;
62.对每一原始数组分别进行编码处理,得到各原始数组各自对应的编码数组;
63.针对每一编码数组,对编码数组进行加密处理得到加密数组,并确定输出加密数组的子输出流;
64.基于子输出流、以及加密处理过程中使用的加密密钥,确定编码数组对应的传输消息;
65.依次传输各编码数组各自对应的传输消息。
66.第六方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
67.将文件转换为数据输入流,从数据输入流中读取文件对应的多个原始数组;
68.对每一原始数组分别进行编码处理,得到各原始数组各自对应的编码数组;
69.针对每一编码数组,对编码数组进行加密处理得到加密数组,并确定输出加密数组的子输出流;
70.基于子输出流、以及加密处理过程中使用的加密密钥,确定编码数组对应的传输消息;
71.依次传输各编码数组各自对应的传输消息。
72.第七方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
73.将文件转换为数据输入流,从数据输入流中读取文件对应的多个原始数组;
74.对每一原始数组分别进行编码处理,得到各原始数组各自对应的编码数组;
75.针对每一编码数组,对编码数组进行加密处理得到加密数组,并确定输出加密数组的子输出流;
76.基于子输出流、以及加密处理过程中使用的加密密钥,确定编码数组对应的传输消息;
77.依次传输各编码数组各自对应的传输消息。
78.上述文件传输方法、装置、计算机设备、存储介质和计算机程序产品,将文件转换为数据输入流,从数据输入流中读取文件对应的多个原始数组,即将文件转换并拆分为数组,以便后续传输过程中,无需对文件进行缓存,使得文件传输过程不会占用大量内存,然后,对每一原始数组分别进行编码处理,得到各原始数组各自对应的编码数组,针对每一编码数组,对编码数组进行加密处理得到加密数组,从而可以通过对原始数组进行先编码后加密的操作,进一步提高传输过程的安全性,再确定输出加密数组的子输出流,基于子输出流、以及加密处理过程中使用的加密密钥,确定编码数组对应的传输消息,并依次传输各编码数组各自对应的传输消息。一方面,在传输超大文件的场景下,无需缓存超大文件,也无需直接对超大文件进行处理,而是将超大文件转换并拆分为数组形式进行处理,再将处理后的数组转换为输出流并组装成传输消息,从而依次传输各传输消息,既可以减少对内存的使用,又可以提高传输效率,另一方面,还可以通过先编码再加密,以及组装传输消息的步骤,提高传输过程的安全性。因此,整个过程中,可以满足针对超大文件的传输需求,既可以确保传输过程的安全性,又可以提高传输效率。
附图说明
79.图1为一个实施例中文件传输方法的应用环境图;
80.图2为一个实施例中文件传输方法的流程示意图;
81.图3为一个实施例中获得加密数组的流程示意图;
82.图4为一个实施例中确定传输消息的流程示意图;
83.图5为一个实施例中确定密钥信息的流程示意图;
84.图6为一个实施例中组装传输消息的流程示意图;
85.图7为一个实施例中文件接收方法的流程示意图;
86.图8为一个实施例中拆分传输消息的流程示意图;
87.图9为一个实施例中解析传输消息的流程示意图;
88.图10为另一个实施例中结合文件传输方法与文件接收方法的流程示意图;
89.图11为一个实施例中文件传输装置的结构框图;
90.图12为一个实施例中文件接收装置的结构框图;
91.图13为一个实施例中计算机设备的内部结构图。
具体实施方式
92.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
93.需要说明的是,本技术所涉及的文件信息、文件发送端信息、文件接收端信息(包括但不限于文件内信息、发送端设备信息、接收端设备信息、密钥信息等)和文件数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经各端用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
94.本技术实施例提供的文件传输方法,可以应用于如图1所示的文件传输系统中。其中,发送端102通过网络与接收端104进行通信。数据存储系统可以存储发送端102和接收端104需要处理的数据。数据存储系统可以分别集成在发送端102和接收端104上,也可以放在云上或其他网络服务器上。发送端102可以将文件转换为数据输入流,并从数据输入流中读取文件对应的多个原始数组,再对每一原始数组分别进行编码处理,得到各原始数组各自对应的编码数组,针对每一编码数组,发送端102可以对编码数组进行加密处理得到加密数组,并确定输出加密数组的子输出流,从而基于子输出流、以及加密处理过程中使用的加密密钥,确定编码数组对应的传输消息,进而向接收端104依次传输各编码数组各自对应的传输消息。
95.其中,发送端102可以但不限于是各种可以传输数据的个人计算机、笔记本电脑、智能手机、平板电脑等终端设备。接收端104可以但不限于是各种可以接收数据的服务器,可以用独立的服务器或者是多个服务器组成的服务器集群来实现。以金融科技领域为例,发送端102可以为金融机构的终端,或者需要与金融机构进行数据交互的外部场景方的终端,接收端104可以为金融机构的服务器,或者需要与金融机构进行数据交互的外部场景方的服务器,以基于本技术实施例中提供的文件传输方法,实现金融机构内部、金融机构与外部场景方之间的文件传输。
96.在一个实施例中,如图2所示,提供了一种文件传输方法,以该方法应用于图1中的发送端为例进行说明,包括以下步骤:
97.步骤202,将文件转换为数据输入流,从数据输入流中读取文件对应的多个原始数组。
98.其中,数据输入流具体可以为java标准库提供的最基本的输入流,即字节输入流(inputstream)。数组具体可以为字节数组(byte数组)。
99.可选地,发送端可以从待传输的文件中获取输入字节,从而基于所获取的输入字节,生成数据输入流,然后按照数据输入流中的数据排列顺序,从数据输入流中依次读取预设长度的原始数组,得到待传输的文件对应的多个原始数组。其中,原始数组的预设长度可以根据实际需求进行灵活配置。
100.示例性地,发送端可以按照数据输入流中的数据排列顺序,每次保持相同间隔,从数据输入流中读取预设长度的原始数组。其中,每次读取原始数组时保持的间隔可以大于、等于、或小于预设长度。在间隔等于预设长度的情况下,发送端是在每次读取出原始数组后,从读取到的位置开始读取下一个原始数组。
101.步骤204,对每一原始数组分别进行编码处理,得到各原始数组各自对应的编码数组。
102.其中,原始数组、编码数组均为字节数组。编码算法可以包括:base64编码、ascii编码、utf-8编码等,其中,base64编码是一种将二进制数据转换为ascii字符的编码方式,ascii编码是一种基于拉丁字母的字符编码方式,utf-8编码是一种可变长度的unicode编码方式。本实施例中涉及的编码算法可以根据实际应用场景进行灵活配置,不限于以上几种。
103.可选地,发送端可以基于相同的编码算法,对每一原始数组分别进行编码处理,得到各原始数组各自对应的编码数组,也可以基于不同的编码算法,对每一原始数组分别进行编码处理。其中,在对原始数组进行编码处理后,所得编码数组的长度与原始数组的长度不一致,数组长度会增加,即某一原始数组对应的字节数,小于由该原始数组进行编码处理得到的编码数组的字节数。
104.示例性地,以发送端基于相同的编码算法,对每一原始数组分别进行编码处理为例,发送端可以基于base64编码、ascii编码、utf-8编码等编码方式中的任一种,对各原始数组分别进行编码处理,得到各原始数组各自对应的编码数组。
105.示例性地,以发送端基于不同的编码算法,对每一原始数组分别进行编码处理为例,发送端可以基于base64编码、ascii编码、utf-8编码等编码方式中的至少两种,对每一原始数组分别进行编码处理。
106.步骤206,针对每一编码数组,对编码数组进行加密处理得到加密数组,并确定输出加密数组的子输出流。
107.其中,子输出流具体为java标准库提供的最基本的输出流,即字节输出流(outputstream)。
108.可选地,发送端可以基于相同的加密方式,对各编码数组分别进行加密处理,得到各编码数组各自对应的加密数组,也可以基于不同的加密方式,分别对各编码数组进行加密处理,得到各编码数组各自对应的加密数组。进一步的,针对每一加密数组,发送端可以确定输出加密数组的子输出流。其中,在对编码数组进行加密处理后,所得加密数组的长度与编码数组的长度不一致,数组长度会增加,即某一编码数组对应的字节数,小于由该编码数组进行加密处理得到的加密数组的字节数。
109.步骤208,基于子输出流、以及加密处理过程中使用的加密密钥,确定编码数组对应的传输消息。
110.其中,传输消息具体为基于http协议(hyper text transfer protocol,超文本传输协议)传输的消息,即http消息。
111.可选地,针对每一编码数组,发送端可以基于编码数组与加密数组之间的对应关系、加密数组与子输出流之间的对应关系,确定编码数组对应的子输出流,从而按照http消息的格式,基于编码数组对应的子输出流、以及在对编码数组进行加密处理的过程中使用
的加密密钥,组装得到编码数组对应的传输消息。
112.步骤210,依次传输各编码数组各自对应的传输消息。
113.可选地,发送端可以基于从数据输入流中读取各原始数组的顺序,以及原始数组与编码数组之间的对应关系、编码数组与传输消息之间的对应关系,确定各编码数组各自对应的传输消息的传输顺序,然后,基于http协议,向接收端依次传输各编码数组各自对应的传输消息。
114.上述文件传输方法中,将文件转换为数据输入流,从数据输入流中读取文件对应的多个原始数组,即将文件转换并拆分为数组,以便后续传输过程中,无需对文件进行缓存,使得文件传输过程不会占用大量内存,然后,对每一原始数组分别进行编码处理,得到各原始数组各自对应的编码数组,针对每一编码数组,对编码数组进行加密处理得到加密数组,从而可以通过对原始数组进行先编码后加密的操作,进一步提高传输过程的安全性,再确定输出加密数组的子输出流,基于子输出流、以及加密处理过程中使用的加密密钥,确定编码数组对应的传输消息,并依次传输各编码数组各自对应的传输消息。一方面,在传输超大文件的场景下,无需缓存超大文件,也无需直接对超大文件进行处理,而是将超大文件转换并拆分为数组形式进行处理,再将处理后的数组转换为输出流并组装成传输消息,从而依次传输各传输消息,既可以减少对内存的使用,又可以提高传输效率,另一方面,还可以通过先编码再加密,以及组装传输消息的步骤,提高传输过程的安全性。因此,整个过程中,可以满足针对超大文件的传输需求,既可以确保传输过程的安全性,又可以提高传输效率。
115.在其中一个实施例中,如图3所示,对编码数组进行加密处理得到加密数组,包括:
116.步骤302,获取随机生成的加密密钥。
117.其中,随机生成加密密钥的方式包括但不限定于:基于aes加密(对称加密)算法随机生成、基于rsa加密(非对称加密)算法随机生成、基于国产密码算法随机生成。国产密码算法主要包括sm1(分组密码算法)、sm2(椭圆曲线公钥密码算法)、sm3(密码杂凑算法)等。
118.可选地,发送端可以从多种加密算法中随机选择一种加密算法,并获取基于该加密算法随机生成的一个或多个加密密钥,还可以选择多种加密算法,获取基于多种加密算法生成的多个加密密钥。
119.步骤304,基于加密密钥对编码数组进行加密处理,得到加密数组。
120.其中,每一编码数组均有各自对应的加密数组。
121.可选地,在发送端仅获取一个随机生成的加密密钥的情况下,发送端可以基于该随机密钥对各编码数组分别进行加密处理;在发送端获取的是基于同一加密算法随机生成的多个加密密钥,或者基于不同加密算法随机生成的多个加密密钥的情况下,发送端可以基于不同的加密密钥,对各编码数组分别进行加密处理,得到各编码数组各自对应的加密数组。
122.示例性地,以发送端基于不同的加密密钥,分别对各编码数组进行加密处理为例进行说明,在针对某一编码数组进行加密处理的过程中,发送端可以从aes加密密钥、rsa加密密钥、sm1加密密钥、sm2加密密钥、sm3加密密钥中随机选取一种加密密钥,用于对该编码数组进行加密处理,然后,重复上述的随机选择步骤,重新选择一个加密密钥对下一个编码数组进行加密处理。
123.本实施例中,通过随机生成的加密密钥对编码数组进行加密处理,得到加密数组,可以提高传输过程中数组的安全性,从而提高基于加密数组转换得到的子输出流的安全性,进而提高基于子输出流组装得到的传输消息的安全性,可以确保数据的传输安全。此外,本实施例中,还可以基于不同的随机密钥分别对编码数组进行加密处理,可以进一步提高所生成的加密数组的复杂度、随机度,从而提高传输消息的复杂度、随机度,也有利于确保数据的传输安全。
124.在其中一个实施例中,如图4所示,基于子输出流、以及加密处理过程中使用的加密密钥,确定编码数组对应的传输消息,包括:
125.步骤402,获取加密处理过程中使用的加密密钥,确定加密密钥对应的密钥信息。
126.其中,加密密钥对应的加密信息具体为:加密处理后的加密密钥。
127.可选地,针对每一编码数组,发送端可以获取在对编码数组进行加密处理的过程中使用的加密密钥,并对所获取的加密密钥进行加密处理,得到编码数组所对应加密密钥的密钥信息。
128.示例性地,发送端可以基于相同的加密方式,对各编码数组各自对应的加密密钥分别进行加密处理,得到各编码数组各自对应的加密密钥的密钥信息,也可以基于不同的加密方式,对各编码数组各自对应的加密密钥分别进行加密处理,得到各编码数组各自对应的加密密钥的密钥信息。
129.步骤404,对子输出流和密钥信息进行消息组装,得到编码数组对应的传输消息。
130.其中,传输消息主要包括消息主体与消息标头两部分。
131.可选地,针对每一编码数组,发送端可以基于编码数组与加密数组之间的对应关系、加密数组与子输出流之间的对应关系,确定编码数组对应的子输出流,从而将编码数组对应的子输出流与密钥信息进行消息组装,得到编码数组对应的传输消息。
132.本实施例中,通过对编码数组对应的子输出流和密钥信息进行消息组装,得到编码数组对应的传输消息,一方面,可以在子输出流与密钥信息具备的复杂度、随机性基础上,组装得到复杂度、随机性更高的传输消息,可以确保传输消息的安全性,从而提高数据的传输安全,另一方面,不是直接传输文件,而是传输基于子输出流和密钥消息组装得到的传输消息,使得接收端在接收数据时,无需耗费过多时间缓存文件,只需响应并接收传输消息,有利于减少内存使用率,提高数据传输效率。
133.在其中一个实施例中,如图5所示,确定加密密钥对应的密钥信息,包括:
134.步骤502,获取接收端公钥。
135.其中,公钥与私钥成对出现,用公钥加密的数据,只有用与公钥对应的私钥才能解密,与接收端公钥对应的是接收端私钥。
136.可选地,发送端可以获取密钥管理端下发的接收端的ca(certificate authority,数字证书认证中心)证书,从ca证书中获取接收端公钥。其中,密钥管理端负责管理ca发放的ca证书,ca证书是密钥对(公私钥对)的载体。
137.示例性地,针对同一接收端,不同ca会下发不同的ca证书,因此,发送端可以随机选择一个ca下发的接收端ca证书,得到一个接收端公钥,也可以从多个ca中,获取多个接收端ca证书,从而得到多个接收端公钥。
138.步骤504,基于接收端公钥,对加密密钥进行加密处理,得到加密密钥对应的密钥
信息。
139.可选地,在发送端仅获取一个接收端公钥的情况下,发送端可以基于所获取的接收端公钥,对各编码数组各自对应的加密密钥分别进行加密处理,得到各编码数组各自对应的加密密钥的密钥信息;在发送端获取多个接收端公钥的情况下,针对每一编码数组对应的加密密钥,发送端可以随机从多个接收端公钥中选择任一接收端公钥,对编码数组对应的加密密钥进行加密处理,然后,重复上述的随机选择步骤,重新选择一个接收端公钥对下一个编码数组对应的加密密钥进行加密处理。
140.本实施例中,通过接收端公钥,对加密密钥进行加密处理,得到加密密钥对应的密钥信息,可以提高传输过程中密钥信息的安全性,从而提高基于密钥信息组装得到的传输消息的安全性,可以确保数据的传输安全。此外,本实施例中,还可以基于不同的接收端公钥,对各编码数组各自对应的加密密钥分别进行加密处理,可以提高所生成的密钥信息的复杂度、随机度,从而提高传输消息的复杂度、随机度,也有利于确保数据的传输安全。
141.在其中一个实施例中,如图6所示,对子输出流和密钥信息进行消息组装,得到编码数组对应的传输消息,包括:
142.步骤602,将编码数组对应的子输出流,作为编码数组对应的传输消息的消息主体。
143.可选地,针对每一编码数组,发送端可以基于编码数组与加密数组之间的对应关系、加密数组与子输出流之间的对应关系,确定编码数组对应的子输出流,从而将编码数组对应的子输出流,作为编码数组对应的传输消息的消息主体。其中,传输消息具体为http消息,传输消息的消息主体具体为http body。
144.步骤604,基于子输出流对应的加密数组的长度,确定编码数组对应的传输消息的标头长度。
145.其中,加密数组的长度具体为加密数组的字节数,标头长度具体为消息标头所能容纳的字节数。
146.可选地,针对每一编码数组,在确定编码数组对应的子输出流后,发送端可以基于子输出流对应的加密数组的长度,确定编码数组对应的传输消息的标头长度。
147.步骤606,按照标头长度,将密钥信息配置为编码数组对应的传输消息的消息标头。
148.可选地,针对每一编码数组,在确定编码数组对应的传输消息的标头长度后,发送端可以按照标头长度,将密钥信息配置为编码数组对应的传输消息的消息标头。其中,传输消息具体为http消息,传输消息的消息标头具体为http head。
149.示例性地,为了确保消息标头中可以配置完成的密钥信息,消息标头所能容纳的字节数,即消息标头的标头长度不能小于密钥信息的字节数,即加密数组的字节数不小于密钥信息的字节数。其中,编码数组的长度大于原始数组的长度,加密数组的长度大于原始数组的长度,因此,发送端在读取原始数组之前,可以所读取出的原始数组的预设长度配置为较大值,以使加密数组的字节数不小于密钥信息的字节数。
150.示例性地,以某一编码数组对应的加密数组的字节数为c字节(byte,简称b)为例进行说明,发送端可以先确定编码数组所对应消息标头的标头长度也为c字节,当密钥信息的字节数小于c字节,即消息标头的标头长度大于密钥信息的字节数时,发送端可以将完整
的密钥信息添加至消息标头中,并用0补位,得到c字节的消息标头;当密钥信息的字节数等于c字节时,发送端可以将完整的密钥信息作为消息标头。
151.步骤608,基于消息主体与消息标头,生成编码数组对应的传输消息。
152.可选地,针对每一编码数组,发送端可以通过组装已配置完成的消息主体与消息标头,生成编码数组对应的传输消息。
153.本实施例中,通过组装编码数组对应的子输出流、子输出流对应的加密数组的长度、编码数组对应的密钥信息,得到编码数组对应的传输消息,可以在子输出流与密钥信息具备的复杂度、随机性基础上,组装得到复杂度、随机性更高的传输消息,可以提高传输消息的安全性,从而确保数据的传输安全。
154.在一个实施例中,如图7所示,提供了一种文件接收方法,以该方法应用于图1中的接收端为例进行说明,包括以下步骤:
155.步骤702,依次接收多个传输消息。
156.可选地,由于发送端是基于http协议,按照从数据输入流中读取各原始数组的顺序,向接收端依次传输各编码数组各自对应的传输消息,因此,接收端也是按照各原始数组的读取顺序,依次响应http消息请求,并依次接收多个传输消息。
157.步骤704,针对每一传输消息,确定传输消息对应的子输出流、子输出流所输出的加密数组、以及加密数组的加密密钥。
158.可选地,针对每一传输消息,接收端可以对传输消息的消息主体进行解析,确定传输消息对应的子输出流,并识别出子输出流所输出的加密数组,接收端还可以通过解析传输消息的消息标头,得到加密数组的加密密钥。
159.步骤706,基于加密密钥对加密数组进行解密处理,得到编码数组。
160.可选地,针对每一传输消息,由于在发送端基于加密密钥对各编码数组进行加密处理,得到加密数组后,发送端还会基于加密密钥与加密数组组装传输消息,使得每一传输消息对应的加密密钥、加密数组均配置于传输消息中。因此,针对每一传输消息,接收端可以从传输消息中解析出传输消息对应的加密密钥,从而基于传输消息对应的加密密钥,对传输消息对应的加密数组进行解密处理,得到传输消息对应的编码数组。
161.步骤708,对编码数组进行解码处理,得到传输消息对应的原始数组。
162.其中,编码算法可以根据实际应用场景进行灵活配置。
163.可选地,在发送端仅采用一种编码算法,对各原始数组分别进行编码处理,得到各原始数组各自对应的编码数组的情况下,接收端可以基于与发送端采用的编码算法对应的解码算法,对每一传输消息各自对应的编码数组分别进行解码处理,得到每一传输消息各自对应的原始数组。
164.示例性地,以发送端基于base64编码算法,对各原始数组分别进行编码处理为例进行说明,针对每一传输消息对应的编码数组,接收端可以基于与base64编码算法对应的base64解码算法,对每一传输消息各自对应的编码数组进行解码处理,得到每一传输消息各自对应的原始数组。
165.可选地,在发送端采用多种编码算法,分别对各原始数组进行编码处理的情况下,针对每一传输消息,在发送端对原始数组进行编码处理,得到编码数组的过程中,发送端可以记录每一传输消息所对应编码数组的编码方式,并将所记录的编码方式发送至接收端,
以便接收端可以基于每一传输消息各自对应的编码方式,对每一传输消息各自对应的编码数组分别进行解码处理,得到每一传输消息各自对应的原始数组。
166.示例性地,以发送端基于base64编码对第i个原始数组进行编码处理,得到第i个编码数组,以及基于ascii编码对第j个原始数组进行编码处理,得到第j个编码数组为例进行说明,接收端可以基于发送端记录的编码方式,基于base64解码,对第i个编码数组进行解码处理,得到第i个原始数组,接收端还可以基于ascii解码,对第j个编码数组进行解码处理,得到第j个原始数组。
167.步骤710,确定与多个传输消息各自对应的原始数组匹配的文件。
168.其中,在发送端,原始数组、编码数组、加密数组、传输消息之间存在一一对应的关系,在接收端,传输消息、加密数组、编码数组、原始数组之间也存在一一对应的关系。
169.可选地,由于在发送端将文件转换为数据输入流,并从数据输入流中循环读取出原始数组后,发送端是按照原始数组读取的顺序,向接收端依次发送各传输消息。因此,接收端可以基于接收各传输消息的顺序,确定各传输消息各自对应的原始数组的顺序,并按照所确定的顺序,对各原始数组进行循环读取的逆过程,得到数据输出流,并将数据输入流转换为文件。即接收端可以采取与发送端的文件传输方法对应的逆过程,获取文件。
170.本实施例中,对每一传输消息进行解析,并对解析出的加密数组进行解密处理、解码处理,得到传输消息对应的原始数组,从而基于多个传输消息各自对应的原始数组还原得到文件,一方面,在文件接收过程中,尤其是针对超大文件的传输场景,无需耗费过多时间缓存文件,也不是直接对文件进行处理,而是传输、处理二进制格式的数组,使得文件接收过程不会占用大量内存,可以提高文件接收效率,另一方面,通过解析传输消息、以及先解密再解码的步骤,可以提高文件接收过程的安全性。因此,既可以确保文件接收过程的安全性,又可以提高文件接收效率。
171.在其中一个实施例中,如图8所示,确定传输消息对应的子输出流、子输出流所输出的加密数组、以及加密数组的加密密钥,包括:
172.步骤802,对传输消息进行消息拆分,确定传输消息对应的子输出流、子输出流所输出的加密数组、以及密钥信息。
173.可选地,针对每一传输消息,接收端可以对传输消息进行消息拆分,确定传输消息对应的消息主体、消息标头、以及标头长度,从而确定传输消息对应的子输出流、子输出流所输出的加密数组、以及密钥信息。
174.步骤804,对密钥信息进行解密处理,得到加密数组的加密密钥。
175.可选地,接收端可以获取密钥管理端下发的接收端的ca证书,从ca证书中获取接收端私钥,从而基于接收端私钥,对密钥信息进行解密处理,得到加密数组的加密密钥。
176.示例性地,在发送端基于一个接收端公钥,对各编码数组各自对应的加密密钥分别进行加密处理,得到各编码数组各自对应的加密密钥的密钥信息的情况下,针对每一传输消息,接收端可以基于与该接收端公钥对应的接收端私钥,对各传输消息各自对应的密钥信息分别进行解密处理,得到各传输消息各自对应的加密密钥。
177.示例性地,在发送端基于多个接收端公钥,对各编码数组各自对应的加密密钥分别进行加密处理的情况下,针对每一编码数组,发送端可以记录对该编码数组所对应的加密密钥进行加密处理的过程中,所使用的接收端公钥所属的ca证书,并将所记录与接收端
公钥相关的信息发送至接收端。因此,针对每一传输消息中的密钥信息,接收端可以通过确定在获取该密钥信息的过程中,所使用的接收端公钥所属的ca证书,确定对该密钥信息进行解密处理时,所需的接收端私钥,从而基于所确定的接收端私钥,对该密钥信息进行解密处理,得到传输消息对应的加密密钥,以基于该加密密钥,对传输消息对应的加密数组进行解密处理,得到传输消息对应的编码数组。
178.本实施例中,通过接收端私钥,对密钥信息进行解密处理,得到加密密钥,可以提高文件接收过程中加密密钥的安全性,从而提高基于加密密钥得到编码数组的安全性,可以确保数据的传输安全。
179.在其中一个实施例中,如图9所示,对传输消息进行消息拆分,确定传输消息对应的子输出流、子输出流所输出的加密数组、以及密钥信息,包括:
180.步骤902,对传输消息进行解析处理,得到传输消息的消息主体和消息标头。
181.可选地,针对每一传输消息,接收端可以对传输消息进行解析处理,得到传输消息的消息主体和消息标头,并对消息标头进行识别,确定消息标头的标头长度。
182.步骤904,基于消息主体以及消息标头的标头长度,获得传输消息对应的子输入流、以及子输出流所输出的加密数组。
183.可选地,针对每一传输消息,接收端可以将消息主体转换为传输消息对应的子输入流,并从子输入流中,读取长度与消息标头的标头长度一致的加密数组。
184.步骤906,基于消息标头,获得传输消息对应的密钥信息。
185.可选地,针对每一传输消息,接收端可以对消息标头中的内容进行解析,从消息标头中获得传输消息对应的密钥信息。
186.本实施例中,通过拆分并解析传输消息,得到传输消息对应的加密数组、密钥信息,以便后续可以从密钥信息中提取的加密密钥,对加密数组进行解密处理,进而执行先解密再解码的步骤,有利于确保传输消息的安全,从而确保数据的传输安全。
187.在一个实施例中,如图10所示,提供一种在非安全网络环境下,应用于图1中发送端与接收端,结合了上述文件传输方法与文件接收方法的流程示意图,主要包括以下流程:
188.对于发送端,发送端可以先将文件转换为数据输入流,从数据输入流中读取文件对应的多个原始数组,并对每一原始数组分别进行编码处理,得到各原始数组各自对应的编码数组,然后,针对每一编码数组,发送端可以获取随机生成的加密密钥,从而基于加密密钥对编码数组进行加密处理,得到加密数组,并确定输出加密数组的子输出流。
189.进一步的,发送端可以从密钥管理端获取接收端公钥,并基于接收端公钥,对加密密钥进行加密处理,得到加密密钥对应的密钥信息。然后,发送端可以将编码数组对应的子输出流,作为编码数组对应的传输消息的消息主体,并基于子输出流对应的加密数组的长度,确定编码数组对应的传输消息的标头长度,按照标头长度,将密钥信息配置为编码数组对应的传输消息的消息标头,从而基于消息主体与消息标头,生成编码数组对应的传输消息,进而依次传输各编码数组各自对应的传输消息至接收端。
190.对于接收端,接收端可以依次接收多个传输消息,针对每一传输消息,对传输消息进行解析处理,得到传输消息的消息主体和消息标头,从而基于消息主体以及消息标头的标头长度,获得传输消息对应的子输入流、以及子输出流所输出的加密数组,并基于消息标头,获得传输消息对应的密钥信息,对密钥信息进行解密处理,得到加密数组的加密密钥,
从而基于加密密钥对加密数组进行解密处理,得到编码数组,进而对编码数组进行解码处理,得到传输消息对应的原始数组,最后,确定与多个传输消息各自对应的原始数组匹配的文件,对于多个传输消息各自对应的原始数组匹配的文件进行组装,得到原始文件。
191.本实施例中,一方面,在文件传输与文件接收过程中,均无需耗费过长时间缓存文件,也无需直接对文件进行处理,而是将文件转换并拆分为数组形式进行处理,再将处理后的数组转换为输出流并组装成传输消息,从而依次传输各传输消息,既可以减少对内存的使用,又可以提高传输效率,另一方面,结合了编码、加密、组装传输消息、解析传输消息、解密、解码的步骤,可以极大提高数据传输过程的安全性。因此,在传输超大文件的应用场景,可以满足针对超大文件的传输需求,既可以确保传输过程的安全性,又可以提高传输效率。
192.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
193.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的文件传输方法的文件传输装置。该装置所提供的解决问题的实现方案与上述文件传输方法中所记载的实现方案相似,故下面所提供的一个或多个文件传输装置实施例中的具体限定可以参见上文中对于文件传输方法的限定,在此不再赘述。
194.在一个实施例中,如图11所示,提供了一种文件传输装置1100,包括:文件转换模块1102、数组编码模块1104、数组加密模块1106、消息确定模块1108和消息传输模块1110,其中:
195.文件转换模块,用于将文件转换为数据输入流,从数据输入流中读取所述文件对应的多个原始数组;
196.数组编码模块,用于对每一原始数组分别进行编码处理,得到各原始数组各自对应的编码数组;
197.数组加密模块,用于针对每一编码数组,对编码数组进行加密处理得到加密数组,并确定输出加密数组的子输出流;
198.消息确定模块,用于基于子输出流、以及加密处理过程中使用的加密密钥,确定编码数组对应的传输消息;
199.消息传输模块,用于依次传输各编码数组各自对应的传输消息。
200.上述文件传输装置中,将文件转换为数据输入流,从数据输入流中读取文件对应的多个原始数组,即将文件转换并拆分为数组,以便后续传输过程中,无需对文件进行缓存,使得文件传输过程不会占用大量内存,然后,对每一原始数组分别进行编码处理,得到各原始数组各自对应的编码数组,针对每一编码数组,对编码数组进行加密处理得到加密数组,从而可以通过对原始数组进行先编码后加密的操作,进一步提高传输过程的安全性,再确定输出加密数组的子输出流,基于子输出流、以及加密处理过程中使用的加密密钥,确定编码数组对应的传输消息,并依次传输各编码数组各自对应的传输消息。一方面,在传输
超大文件的场景下,无需缓存超大文件,也无需直接对超大文件进行处理,而是将超大文件转换并拆分为数组形式进行处理,再将处理后的数组转换为输出流并组装成传输消息,从而依次传输各传输消息,既可以减少对内存的使用,又可以提高传输效率,另一方面,还可以通过先编码再加密,以及组装传输消息的步骤,提高传输过程的安全性。因此,整个过程中,可以满足针对超大文件的传输需求,既可以确保传输过程的安全性,又可以提高传输效率。
201.在其中一个实施例中,数组加密模块还用于获取随机生成的加密密钥;基于加密密钥对编码数组进行加密处理,得到加密数组。
202.在其中一个实施例中,消息确定模块还用于:获取加密处理过程中使用的加密密钥,确定加密密钥对应的密钥信息;对子输出流和密钥信息进行消息组装,得到编码数组对应的传输消息。
203.在其中一个实施例中,文件传输装置中还包括:密钥信息获得模块,用于获取接收端公钥;基于接收端公钥,对加密密钥进行加密处理,得到加密密钥对应的密钥信息。
204.在其中一个实施例中,文件传输装置中还包括:消息生成模块,用于将所述编码数组对应的子输出流,作为编码数组对应的传输消息的消息主体;基于子输出流对应的加密数组的长度,确定编码数组对应的传输消息的标头长度;按照标头长度,将密钥信息配置为编码数组对应的传输消息的消息标头;基于消息主体与消息标头,生成编码数组对应的传输消息。
205.上述文件传输装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
206.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的文件接收方法的文件接收装置。该装置所提供的解决问题的实现方案与上述文件接收方法中所记载的实现方案相似,故下面所提供的一个或多个文件接收装置实施例中的具体限定可以参见上文中对于文件接收方法的限定,在此不再赘述。
207.在一个实施例中,如图12所示,提供了一种文件接收装置1200,包括:消息接收模块1202、消息拆分模块1204、数组解密模块1206、数组解码模块1208和文件确定模块1210,其中:
208.消息接收模块,用于依次接收多个传输消息;
209.消息拆分模块,用于针对每一传输消息,确定传输消息对应的子输出流、子输出流所输出的加密数组、以及加密数组的加密密钥;
210.数组解密模块,用于基于加密密钥对加密数组进行解密处理,得到编码数组;
211.数组解码模块,用于对编码数组进行解码处理,得到传输消息对应的原始数组;
212.文件确定模块,用于确定与多个传输消息各自对应的原始数组匹配的文件。
213.在其中一个实施例中,消息拆分模块还用于:对传输消息进行消息拆分,确定传输消息对应的子输出流、子输出流所输出的加密数组、以及密钥信息;对密钥信息进行解密处理,得到加密数组的加密密钥。
214.在其中一个实施例中,文件接收装置中还包括:消息解析模块,用于对传输消息进行解析处理,得到传输消息的消息主体和消息标头;基于消息主体以及所述消息标头的标
头长度,获得传输消息对应的子输入流、以及子输出流所输出的加密数组;基于消息标头,获得传输消息对应的密钥信息。
215.上述文件接收装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
216.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图13所示。该计算机设备包括处理器、存储器、输入/输出接口(input/output,简称i/o)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储文件传输数据或文件接收数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上述文件传输方法或文件接收方法。
217.本领域技术人员可以理解,图13中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
218.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
219.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
220.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
221.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
222.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
223.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。

技术特征:
1.一种文件传输方法,其特征在于,所述方法包括:将文件转换为数据输入流,从所述数据输入流中读取所述文件对应的多个原始数组;对每一所述原始数组分别进行编码处理,得到各所述原始数组各自对应的编码数组;针对每一所述编码数组,对所述编码数组进行加密处理得到加密数组,并确定输出所述加密数组的子输出流;基于所述子输出流、以及所述加密处理过程中使用的加密密钥,确定所述编码数组对应的传输消息;依次传输各所述编码数组各自对应的传输消息。2.根据权利要求1所述的方法,其特征在于,所述对所述编码数组进行加密处理得到加密数组,包括:获取随机生成的加密密钥;基于所述加密密钥对所述编码数组进行加密处理,得到加密数组。3.根据权利要求1所述的方法,其特征在于,所述基于所述子输出流、以及所述加密处理过程中使用的加密密钥,确定所述编码数组对应的传输消息,包括:获取所述加密处理过程中使用的加密密钥,确定所述加密密钥对应的密钥信息;对所述子输出流和所述密钥信息进行消息组装,得到所述编码数组对应的传输消息。4.根据权利要求3所述的方法,其特征在于,所述确定所述加密密钥对应的密钥信息,包括:获取接收端公钥;基于所述接收端公钥,对所述加密密钥进行加密处理,得到所述加密密钥对应的密钥信息。5.根据权利要求3所述的方法,其特征在于,所述对所述子输出流和所述密钥信息进行消息组装,得到所述编码数组对应的传输消息,包括:将所述编码数组对应的子输出流,作为所述编码数组对应的传输消息的消息主体;基于所述子输出流对应的加密数组的长度,确定所述编码数组对应的传输消息的标头长度;按照所述标头长度,将所述密钥信息配置为所述编码数组对应的传输消息的消息标头;基于所述消息主体与所述消息标头,生成所述编码数组对应的传输消息。6.一种文件接收方法,其特征在于,所述方法包括:依次接收多个传输消息;针对每一所述传输消息,确定所述传输消息对应的子输出流、所述子输出流所输出的加密数组、以及所述加密数组的加密密钥;基于所述加密密钥对所述加密数组进行解密处理,得到编码数组;对所述编码数组进行解码处理,得到所述传输消息对应的原始数组;确定与多个所述传输消息各自对应的原始数组匹配的文件。7.根据权利要求6所述的方法,其特征在于,所述确定所述传输消息对应的子输出流、所述子输出流所输出的加密数组、以及所述加密数组的加密密钥,包括:对所述传输消息进行消息拆分,确定所述传输消息对应的子输出流、所述子输出流所
输出的加密数组、以及密钥信息;对所述密钥信息进行解密处理,得到所述加密数组的加密密钥。8.根据权利要求7所述的方法,其特征在于,所述对所述传输消息进行消息拆分,确定所述传输消息对应的子输出流、所述子输出流所输出的加密数组、以及密钥信息,包括:对所述传输消息进行解析处理,得到所述传输消息的消息主体和消息标头;基于所述消息主体以及所述消息标头的标头长度,获得所述传输消息对应的子输入流、以及所述子输出流所输出的加密数组;基于所述消息标头,获得所述传输消息对应的密钥信息。9.一种文件传输装置,其特征在于,所述装置包括:文件转换模块,用于将文件转换为数据输入流,从所述数据输入流中读取所述文件对应的多个原始数组;数组编码模块,用于对每一所述原始数组分别进行编码处理,得到各所述原始数组各自对应的编码数组;数组加密模块,用于针对每一所述编码数组,对所述编码数组进行加密处理得到加密数组,并确定输出所述加密数组的子输出流;消息确定模块,用于基于所述子输出流、以及所述加密处理过程中使用的加密密钥,确定所述编码数组对应的传输消息;消息传输模块,用于依次传输各所述编码数组各自对应的传输消息。10.根据权利要求9所述的装置,其特征在于,所述数组加密模块还用于获取随机生成的加密密钥;基于所述加密密钥对所述编码数组进行加密处理,得到加密数组。11.根据权利要求9所述的装置,其特征在于,所述消息确定模块还用于:获取所述加密处理过程中使用的加密密钥,确定所述加密密钥对应的密钥信息;对所述子输出流和所述密钥信息进行消息组装,得到所述编码数组对应的传输消息。12.根据权利要求11所述的装置,其特征在于,所述装置还包括:密钥信息获得模块,用于获取接收端公钥;基于所述接收端公钥,对所述加密密钥进行加密处理,得到所述加密密钥对应的密钥信息。13.根据权利要求11所述的装置,其特征在于,所述装置还包括:消息生成模块,用于将所述编码数组对应的子输出流,作为所述编码数组对应的传输消息的消息主体;基于所述子输出流对应的加密数组的长度,确定所述编码数组对应的传输消息的标头长度;按照所述标头长度,将所述密钥信息配置为所述编码数组对应的传输消息的消息标头;基于所述消息主体与所述消息标头,生成所述编码数组对应的传输消息。14.一种文件接收装置,其特征在于,所述装置包括:消息接收模块,用于依次接收多个传输消息;消息拆分模块,用于针对每一所述传输消息,确定所述传输消息对应的子输出流、所述子输出流所输出的加密数组、以及所述加密数组的加密密钥;数组解密模块,用于基于所述加密密钥对所述加密数组进行解密处理,得到编码数组;数组解码模块,用于对所述编码数组进行解码处理,得到所述传输消息对应的原始数组;文件确定模块,用于确定与多个所述传输消息各自对应的原始数组匹配的文件。
15.根据权利要求14所述的装置,其特征在于,所述消息拆分模块还用于:对所述传输消息进行消息拆分,确定所述传输消息对应的子输出流、所述子输出流所输出的加密数组、以及密钥信息;对所述密钥信息进行解密处理,得到所述加密数组的加密密钥。16.根据权利要求15所述的装置,其特征在于,所述装置还包括:消息解析模块,用于对所述传输消息进行解析处理,得到所述传输消息的消息主体和消息标头;基于所述消息主体以及所述消息标头的标头长度,获得所述传输消息对应的子输入流、以及所述子输出流所输出的加密数组;基于所述消息标头,获得所述传输消息对应的密钥信息。17.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的方法的步骤。18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。19.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。

技术总结
本申请涉及数据安全技术领域,具体公开了一种文件传输方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:将文件转换为数据输入流,从数据输入流中读取文件对应的多个原始数组;对每一原始数组分别进行编码处理,得到各原始数组各自对应的编码数组;针对每一编码数组,对编码数组进行加密处理得到加密数组,并确定输出加密数组的子输出流;基于子输出流、以及加密处理过程中使用的加密密钥,确定编码数组对应的传输消息;依次传输各编码数组各自对应的传输消息。用本方法能够确保超大文件的传输安全性,且能提高传输效率。且能提高传输效率。且能提高传输效率。


技术研发人员:郑富伟 曹康
受保护的技术使用者:建信金融科技有限责任公司
技术研发日:2023.06.19
技术公布日:2023/9/7
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐