一种文件传输方法、装置、电子设备和计算机可读介质转让专利

申请号 : CN202010975074.2

文献号 : CN114268447B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘文彬

申请人 : 京东科技信息技术有限公司京东科技控股股份有限公司

摘要 :

本申请提供了一种文件传输方法、装置、电子设备和计算机可读介质,属于信息传输技术领域。方法包括:在确定第一设备的第一公钥存在于区块链系统中的情况下,生成文件密码,其中,所述文件密码用于对文件进行加解密;通过所述第一公钥对所述文件密码进行加密,生成所述第一设备的第一身份凭证;将所述第一身份凭证和用所述文件密码加密后的目标文件上传至所述区块链系统,以使所述第一设备利用第一私钥从所述第一身份凭证中获取所述文件密码并利用所述文件密码对加密后的目标文件进行解密,其中,所述第一私钥和所述第一公钥为所述第一设备的密钥对。本申请提高了文件传输的安全性。

权利要求 :

1.一种文件传输方法,其特征在于,所述方法包括:在确定第一设备的第一公钥存在于区块链系统中的情况下,生成文件密码,其中,所述文件密码用于对文件进行加解密;

通过所述第一公钥对所述文件密码进行加密,生成所述第一设备的第一身份凭证;

将所述第一身份凭证和用所述文件密码加密后的目标文件上传至所述区块链系统,以使所述第一设备利用第一私钥从所述第一身份凭证中获取所述文件密码并利用所述文件密码对加密后的目标文件进行解密,其中,所述第一私钥和所述第一公钥为所述第一设备的密钥对;

其中,所述在确定第一设备的第一公钥存在于区块链系统中的情况下,生成文件密码包括:在确定所述第一公钥存在于区块链系统的情况下,获取用户输入的图形,并确定所述第一设备中的当前设备时刻和当前内存余量;

确定所述图形的关键点的坐标值;

根据所述关键点的坐标值、所述当前设备时刻和所述当前内存余量,生成所述文件密码。

2.根据权利要求1所述的方法,其特征在于,所述根据所述关键点的坐标值、所述当前设备时刻和所述当前内存余量,生成所述文件密码包括:根据所述关键点的坐标值、所述当前设备时刻和所述当前内存余量,生成初始数据;

通过预设函数将所述初始数据进行长度变换,并将长度变化后的初始数据作为所述文件密码。

3.根据权利要求2所述的方法,其特征在于,所述通过预设函数将所述初始数据进行长度变换,并将长度变化后的初始数据作为所述文件密码包括:将所述初始数据由十进制数据变换为初始二进制数据;

通过所述预设函数将所述初始二进制数据映射为预设长度的二进制数据,将所述预设长度的二进制数据作为所述文件密码。

4.根据权利要求1所述的方法,其特征在于,所述在确定第一设备的第一公钥存在于区块链系统中的情况下,生成文件密码包括:获取所述第一设备的身份验证结果;

在所述第一公钥存在于所述区块链系统中且所述身份验证结果表示通过验证的情况下,生成文件密码。

5.根据权利要求1所述的方法,其特征在于,所述在确定第一设备的第一公钥存在于区块链系统中的情况下,生成文件密码之后,所述方法还包括:获取第二设备的第二公钥;

通过所述第二公钥对所述文件密码进行加密,生成所述第二设备的第二身份凭证;

将所述第二身份凭证上传至所述区块链系统。

6.根据权利要求5所述的方法,其特征在于,在将所述第二身份凭证和加密后的目标文件上传至所述区块链系统后,所述方法还包括:在需要使用所述文件密码的情况下,从所述区块链系统中获取所述第二身份凭证;

利用第二私钥从所述第二身份凭证中获取所述文件密码并利用所述文件密码对所述加密后的目标文件进行解密,其中,所述第二私钥和所述第二公钥为所述第二设备的密钥对。

7.一种文件传输装置,其特征在于,所述装置包括:第一生成模块,用于在确定第一设备的第一公钥存在于区块链系统中的情况下,生成文件密码,其中,所述文件密码用于对文件进行加解密;

第二生成模块,用于通过所述第一公钥对所述文件密码进行加密,生成所述第一设备的第一身份凭证;

上传模块,用于将所述第一身份凭证和用所述文件密码加密后的目标文件上传至所述区块链系统,以使所述第一设备利用第一私钥从所述第一身份凭证中获取所述文件密码并利用所述文件密码对加密后的目标文件进行解密,其中,所述第一私钥和所述第一公钥为所述第一设备的密钥对;

其中,所述第一生成模块用于:

在确定所述第一公钥存在于区块链系统的情况下,获取用户输入的图形,并确定所述第一设备中的当前设备时刻和当前内存余量;

确定所述图形的关键点的坐标值;

根据所述关键点的坐标值、所述当前设备时刻和所述当前内存余量,生成所述文件密码。

8.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现权利要求1‑6任一所述的方法步骤。

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1‑6任一所述的方法步骤。

说明书 :

一种文件传输方法、装置、电子设备和计算机可读介质

技术领域

[0001] 本申请涉及信息传输技术领域,尤其涉及一种文件传输方法、装置、电子设备和计算机可读介质。

背景技术

[0002] 随着互联网的发展,电子合约签署已成为常态,电子合约是双方或多方当事人之间通过电子信息网络以电子的形式达成的协议,合约发起方将电子合约上传至服务器,合同签署方从服务器下载电子合约再进行签署,若电子合约未进行加密,一旦服务器被入侵,服务器中所有电子合约中的信息都会泄露,影响信息传输的安全性。

发明内容

[0003] 本申请实施例的目的在于提供一种文件传输方法、装置、电子设备和计算机可读介质,以解决信息泄露的问题。具体技术方案如下:
[0004] 第一方面,提供了一种文件传输方法,所述方法包括:
[0005] 在确定第一设备的第一公钥存在于区块链系统中的情况下,生成文件密码,其中,所述文件密码用于对文件进行加解密;
[0006] 通过所述第一公钥对所述文件密码进行加密,生成所述第一设备的第一身份凭证;
[0007] 将所述第一身份凭证和用所述文件密码加密后的目标文件上传至所述区块链系统,以使所述第一设备利用第一私钥从所述第一身份凭证中获取所述文件密码并利用所述文件密码对加密后的目标文件进行解密,其中,所述第一私钥和所述第一公钥为所述第一设备的密钥对。
[0008] 可选地,所述在确定第一设备的第一公钥存在于区块链系统中的情况下,生成文件密码包括:
[0009] 在确定所述第一公钥存在于区块链系统的情况下,获取用户输入的图形,并确定所述第一设备中的当前设备时刻和当前内存余量;
[0010] 确定所述图形的关键点的坐标值;
[0011] 根据所述关键点的坐标值、所述当前设备时刻和所述当前内存余量,生成所述文件密码。
[0012] 可选地,所述根据所述关键点的坐标值、所述当前设备时刻和所述当前内存余量,生成所述文件密码包括:
[0013] 根据所述关键点的坐标值、所述当前设备时刻和所述当前内存余量,生成初始数据;
[0014] 通过预设函数将所述初始数据进行长度变换,并将长度变化后的初始数据作为所述文件密码。
[0015] 可选地,所述通过预设函数将所述初始数据进行长度变换,并将长度变化后的初始数据作为所述文件密码包括:
[0016] 将所述初始数据由十进制数据变换为初始二进制数据;
[0017] 通过所述预设函数将所述初始二进制数据映射为预设长度的二进制数据,将所述预设长度的二进制数据作为所述文件密码。
[0018] 可选地,所述在确定第一设备的第一公钥存在于区块链系统中的情况下,生成文件密码包括:
[0019] 获取所述第一设备的身份验证结果;
[0020] 在所述第一公钥存在于所述区块链系统中且所述身份验证结果表示通过验证的情况下,生成文件密码。
[0021] 可选地,所述在确定第一设备的第一公钥存在于区块链系统中的情况下,生成文件密码之后,所述方法还包括:
[0022] 获取第二设备的第二公钥;
[0023] 通过所述第二公钥对所述文件密码进行加密,生成所述第二设备的第二身份凭证;
[0024] 将所述第二身份凭证上传至所述区块链系统。
[0025] 可选地,在将所述第二身份凭证和加密后的目标文件上传至所述区块链系统后,所述方法还包括:
[0026] 在需要使用所述文件密码的情况下,从所述区块链系统中获取所述第二身份凭证;
[0027] 利用第二私钥从所述第二身份凭证中获取所述文件密码并利用所述文件密码对所述加密后的目标文件进行解密,其中,所述第二私钥和所述第二公钥为所述第二设备的密钥对。
[0028] 第二方面,提供了一种文件传输装置,所述装置包括:
[0029] 第一生成模块,用于在确定第一设备的第一公钥存在于区块链系统中的情况下,生成文件密码,其中,所述文件密码用于对文件进行加解密;
[0030] 第二生成模块,用于通过所述第一公钥对所述文件密码进行加密,生成所述第一设备的第一身份凭证;
[0031] 上传模块,用于将所述第一身份凭证和用所述文件密码加密后的目标文件上传至所述区块链系统,以使所述第一设备利用第一私钥从所述第一身份凭证中获取所述文件密码并利用所述文件密码对加密后的目标文件进行解密,其中,所述第一私钥和所述第一公钥为所述第一设备的密钥对。
[0032] 第三方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
[0033] 存储器,用于存放计算机程序;
[0034] 处理器,用于执行存储器上所存放的程序时,实现任一所述的方法步骤。
[0035] 第四方面,提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现任一所述的方法步骤。
[0036] 本申请实施例有益效果:
[0037] 本申请实施例提供了一种文件传输方法,方法包括:第二设备在确定第一设备的第一公钥存在于区块链系统中的情况下,生成文件密码,然后通过第一公钥对文件密码进行加密,生成第一设备的第一身份凭证,最后将第一身份凭证和用文件密码加密后的目标文件上传至区块链系统,以使第一设备利用第一私钥从第一身份凭证中获取文件密码并利用文件密码对加密后的目标文件进行解密。本申请采用非对称加密方式对目标文件进行加密和解密,保证只有第一设备才可以通过第一私钥获取文件密码并打开目标文件,第三方由于无法知晓第一私钥从而无法打开目标文件,提高了文件传输过程中的安全性。
[0038] 当然,实施本申请的任一产品或方法并不一定需要同时达到以上的所有优点。

附图说明

[0039] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0040] 图1为本申请实施例提供的一种区块链系统框图;
[0041] 图2为本申请实施例提供的一种文件传输的方法流程图;
[0042] 图3为本申请实施例提供的生成文件密码方法流程图;
[0043] 图4为本申请实施例提供的文件传输的网络结构图;
[0044] 图5为本申请实施例提供的一种文件传输装置的结构示意图;
[0045] 图6为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

[0046] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0047] 本申请实施例提供了一种区块链系统,如图1所示,包括身份验证节点1、第一设备节点2和第二设备节点3,第二设备获取第一设备的第一公钥,并通过第二设备节点3从身份验证节点1中获取第一设备所属的用户的身份验证结果,若第二设备确定第一设备的第一公钥存在于区块链系统中,且身份验证结果表通过验证,则第二设备生成文件密码,然后通过第一公钥对文件密码进行加密得到第一身份凭证,第二设备将第一身份凭证和加密后的目标文件通过第二设备节点3上传至区块链系统,第一设备通过第一设备节点2从区块链系统得到第一身份凭证和加密后的目标文件,第一设备通过与第一公钥对称的第一私钥获取第一身份凭证中的文件密码,然后通过该文件密码解开加密后的目标文件。该区块链系统还可以引入服务网关节点和审计节点。
[0048] 本申请实施例还提供了一种文件传输方法,可以应用于合同的发起方采用的第一设备,用于提高文件传输的安全性。
[0049] 下面将结合具体实施方式,对本申请实施例提供的一种文件传输方法进行详细的说明,如图2所示,具体步骤如下:
[0050] 步骤201:在确定第一设备的第一公钥存在于区块链系统中的情况下,生成文件密码。
[0051] 其中,文件密码用于对文件进行加解密。
[0052] 在本申请实施例中,电子合约的签约两方包括发起方和签署方,本申请实施例中采用区块链进行电子合约的签约,电子合约为目标文件,发起方采用的设备为第二设备,签署方采用的设备为第一设备,其中,第一设备和第二设备可以为计算机、手机、ipad等终端。
[0053] 发起方和签署方在区块链注册信息时,会得到各自的公钥,即发起方注册区块链得到第二公钥,签署方注册区块链得到第一公钥,发起方和签署方在签约之前,第一设备公开其自身的第一公钥,第二设备获取第一设备的公钥,并判断第一设备的第一公钥是否存在于区块链系统中,若第二设备判定第一设备的第一公钥不存在于区块链系统中,表明签署方并没有进行区块链注册或第一公钥为非真实公钥;若第二设备判定第一设备的第一公钥存在于区块链系统中,表明签署方已在区块链注册信息,第一公钥为真实公钥,第二设备可以通过区块链得到第二身份凭证和加密后的目标文件,则第二设备生成文件密码,该文件密码用于对电子合约进行加密和解密。
[0054] 步骤202:通过第一公钥对文件密码进行加密,生成第一设备的第一身份凭证。
[0055] 在本申请实施例中,第二设备生成文件密码后,采用加密算法通过第一公钥对文件密码进行加密,生成第一设备的第一身份凭证,其中,第一身份凭证中的第一公钥为第一设备的身份标识。其中,加密算法可以为RSA、ElGamal、背包算法或Rabin,本申请对加密算法不做具体限定。
[0056] 步骤203:将第一身份凭证和用文件密码加密后的目标文件上传至区块链系统,以使第一设备利用第一私钥从第一身份凭证中获取文件密码并利用文件密码对加密后的目标文件进行解密。
[0057] 其中,第一私钥和第一公钥为第一设备的密钥对。
[0058] 在本申请实施例中,第二设备生成文件密码后,采用该文件密码对目标文件进行加密,然后第二设备将第一身份凭证和用文件密码加密后的目标文件上传至区块链系统,第一设备通过第一身份凭证中的第一公钥确定目标文件为需要签署的文件,第一设备利用与第一公钥配对的第一私钥对第一身份凭证进行解密得到文件密码,然后使用该文件密码对加密后的目标文件进行解密,得到目标文件的明文。其中,第一私钥和第一公钥为第一设备的密钥对。第二设备可以将加密后的目标文件上传并保存在区块链系统中的文件数据库中。
[0059] 本申请采用非对称加密方式对目标文件进行加密和解密,保证只有第一设备才可以通过第一私钥获取文件密码并打开目标文件,第三方由于无法知晓第一私钥从而无法打开目标文件,提高了文件传输过程中的安全性。
[0060] 区块链的去中心化区块链本质上是一个去中心化的分布式账本数据库,区块链的数据是分散的存储在网络中许多节点上的,而传统的数据存储方式,则是存在网络中一个或几个大节点上的。中心化与去中心化的实质是存储数据的节点的多少。所以,区块链的去中心化是相对的。数据只存在少数个节点上就是中心化的,但如果存储在大量节点上,它们相对于少数个节点就可以说是去中心化,只是去中心化的程度不一样而已。同时,中心化与去中心化也并不矛盾,并不是完全对立的,因为去中心化中的“去”字是表示弱化、消除中心的过程,而不是绝对没有中心,与无中心化是完全对立的概念。区块链的去中心化,可以提高系统安全性、保证交易安全性、节约资源并提高信息交互效率。
[0061] 作为一种可选的实施方式,如图3所示,在确定第一设备的第一公钥存在于区块链系统中的情况下,生成文件密码包括:
[0062] 步骤301:在确定第一公钥存在于区块链系统的情况下,获取用户输入的图形,并确定第一设备中的当前设备时刻和当前内存余量。
[0063] 在本申请实施例中,第二设备确定第一公钥存在于区块链系统后,确定第一设备中的当前设备时刻和第一设备的当前内存余量,并获取用户输入的图形,其中,该图形可以为第二设备在确定第一公钥存在于区块链系统后自动弹出画图框,用户在画图框内随机输入的图形。
[0064] 步骤302:确定图形的关键点的坐标值。
[0065] 在本申请实施例中,图形由线条组成,第二设备获取图像的关键点,并在图像所在区域设置平面坐标系,获取关键点的坐标。其中,关键点可以为图形线条的弯折点、起始点、终点或交点等,本申请对关键点不做具体限制。
[0066] 步骤303:根据关键点的坐标值、当前设备时刻和当前内存余量,生成文件密码。
[0067] 在本申请实施例中,第二设备获取关键点的坐标值、当前设备时刻和当前内存余量这三个数据后,将上述三个数据按顺序排列,得到初始数据,再通过预设函数对初始数据进行变换,得到文件密码。
[0068] 在本申请中,关键点的坐标值、当前设备时刻和当前内存余量都是随机数据,提高了文件密码的随机性和复杂性,提高了文件传输的安全性。另外,每个文件都采用上述方式得到文件密码,由于生成每个文件密码时,用户输入的图形、设备时刻和设备内存余量都不同,则每个文件的文件密码都是唯一的,即使一份文件密码被破解,也不会对其他文件造成影响,进一步提高了文件传输过程中的安全性。
[0069] 作为一种可选的实施方式,根据关键点的坐标值、当前设备时刻和当前内存余量,生成文件密码包括:根据关键点的坐标值、当前设备时刻和当前内存余量,生成初始数据;通过预设函数将初始数据进行长度变换,并将长度变化后的初始数据作为文件密码。
[0070] 在本申请实施例中,第二设备将关键点的坐标值、当前设备时刻和当前内存余量按顺序排列,得到初始数据,然后通过预设函数对初始数据进行长度变换,其中,长度变换可以为将初始数据变换得到预设长度的数据,也可以为将初始数据变换得到随机长度的数据,第二设备将长度变换后的初始数据作为文件密码。其中,排列顺序可以是固定排列顺序,也可以是随机排列顺序。
[0071] 作为一种可选的实施方式,通过预设函数将初始数据进行长度变换,并将长度变化后的初始数据作为文件密码包括:将初始数据由十进制数据变换为初始二进制数据;通过预设函数将初始二进制数据映射为预设长度的二进制数据,将预设长度的二进制数据作为文件密码。
[0072] 在本申请实施例中,关键点的坐标值、当前设备时刻和当前内存余量均为十进制的数据,第二设备可以先将初始数据由十进制数据变换为初始二进制数据,然后通过预设函数将初始二进制数据映射为预设长度的二进制数据,并将预设长度的二进制数据作为文件密码,其中,预设函数可以为哈希算法,示例性地,预设函数可以为SM3密码杂凑算法,也可以为SHA256哈希算法,采用SHA256哈希算法可以得到数据长度为256位的文件密码。
[0073] 作为一种可选的实施方式,在确定第一设备的第一公钥存在于区块链系统中的情况下,生成文件密码包括:获取第一设备的身份验证结果;在第一公钥存在于区块链系统中且身份验证结果表示通过验证的情况下,生成文件密码。
[0074] 在本申请实施例中,身份验证机构可以对签署方进行身份验证并生成能够标识签署方的序列号,身份验证机构如果确定签署方的身份验证结果表示通过验证,则将该序列号进行标记。身份验证机构将签署方的序列号上传至区块链系统,其中,第三方根据序列号并不能确定签署方的身份,这样保证了签署方在区块链中个人信息的隐私性和安全性。通过智能合约,签署方的序列号和签署方第一设备的第一公钥保存在区块链系统中的同一账户中,第二设备若确定序列号为已标记,则表明签署方的身份验证结果表示通过验证。处理器判定第一公钥存在于区块链系统中,并且签署方的身份验证结果表示通过验证,表明签署方已在区块链系统进行信息注册,且签署方的身份得到身份验证机构的认定,则第二设备生成文件密码。
[0075] 其中,身份验证机构可以是银行、公安机关等可以验证个人身份信息的可信机构,身份验证机构通过姓名、身份证号、人脸图像等对个人身份进行真实性验证。
[0076] 本申请通过身份验证机构对用户的真实身份背书,区块链系统中并不含有用户的个人身份信息,保护了用户的个人信息,加强个人信息的安全性。
[0077] 作为一种可选的实施方式,在确定第一设备的第一公钥存在于区块链系统中的情况下,生成文件密码之后,方法还包括:获取第二设备的第二公钥;通过第二公钥对文件密码进行加密,生成第二设备的第二身份凭证;将第二身份凭证上传至区块链系统。
[0078] 在本申请实施例中,第二设备在生成文件密码后,并不会保存该文件密码。若第二设备要获取加密后的目标文件,需得到文件密码。因此,第二设备生成其本身的第二身份凭证,然后利用第二私钥从第二身份凭证中获取文件密码。具体的,在生成文件密码后,第二设备可以获取其本身的第二公钥,然后通过第二公钥对文件密码进行加密,生成其本身的第二身份凭证,并将第二身份凭证上传至区块链系统。
[0079] 第二设备上传第二身份凭证,可以与第一身份凭证和加密后的文件共同上传至区块链系统,也可以在需要查看文件时再上传第二身份凭证。
[0080] 作为一种可选的实施方式,在将第二身份凭证和加密后的目标文件上传至区块链系统后,方法还包括:在需要使用文件密码的情况下,从区块链系统中获取第二身份凭证;利用第二私钥从第二身份凭证中获取文件密码并利用文件密码对加密后的目标文件进行解密,其中,第二私钥和第二公钥为第二设备的密钥对。
[0081] 在本申请实施例中,第二设备在需要使用文件密码时,从区块链系统中获取第二身份凭证,利用与第二公钥对称的第二私钥对第二身份凭证进行解密,得到第二身份凭证中的文件密码,然后利用文件密码对加密后的目标文件进行解密,得到目标文件的明文。其中,第二私钥和第二公钥为第二设备的密钥对。
[0082] 图4为文件传输的网络结构图。第二设备通过图形关键点的坐标值、当前设备时刻和当前内存余量,生成文件密码,然后第二设备通过签署方的第一公钥对文件密码进行加密,得到第一身份凭证,第二设备通过发起方的第二公钥对文件进行加密,得到第二身份凭证,第二设备将文件密码、第一身份凭证和第二身份凭证上传至区块链系统。
[0083] 基于相同的技术构思,本申请实施例还提供了一种文件传输装置,如图5所示,该装置包括:
[0084] 第一生成模块501,用于在确定第一设备的第一公钥存在于区块链系统中的情况下,生成文件密码,其中,文件密码用于对文件进行加解密;
[0085] 第二生成模块502,用于通过第一公钥对文件密码进行加密,生成第一设备的第一身份凭证;
[0086] 第一上传模块503,用于将第一身份凭证和用文件密码加密后的目标文件上传至区块链系统,以使第一设备利用第一私钥从第一身份凭证中获取文件密码并利用文件密码对加密后的目标文件进行解密,其中,第一私钥和第一公钥为第一设备的密钥对。
[0087] 可选地,第一生成模块501包括:
[0088] 第一确定单元,用于在确定第一公钥存在于区块链系统的情况下,获取用户输入的图形,并确定第一设备中的当前设备时刻和当前内存余量;
[0089] 第二确定单元,用于确定图形的关键点的坐标值;
[0090] 第一生成单元,用于根据关键点的坐标值、当前设备时刻和当前内存余量,生成文件密码。
[0091] 可选地,第一生成单元包括:
[0092] 生成子单元,用于根据关键点的坐标值、当前设备时刻和当前内存余量,生成初始数据;
[0093] 变换子单元,用于通过预设函数将初始数据进行长度变换,并将长度变化后的初始数据作为文件密码。
[0094] 可选地,变换子单元包括:
[0095] 变换子模块,用于将初始数据由十进制数据变换为初始二进制数据;
[0096] 映射子模块,用于通过预设函数将初始二进制数据映射为预设长度的二进制数据,将预设长度的二进制数据作为文件密码。
[0097] 可选地,第一生成模块501包括:
[0098] 获取单元,用于获取第一设备的身份验证结果;
[0099] 第二生成单元,用于在第一公钥存在于区块链系统中且身份验证结果表示通过验证的情况下,生成文件密码。
[0100] 可选地,该装置还包括:
[0101] 第一获取模块,用于获取第二设备的第二公钥;
[0102] 第三生成模块,用于通过第二公钥对文件密码进行加密,生成第二设备的第二身份凭证;
[0103] 第三上传模块,用于将第二身份凭证上传至区块链系统。
[0104] 可选地,该装置还包括:
[0105] 第二获取模块,用于在需要使用文件密码的情况下,从区块链系统中获取第二身份凭证;
[0106] 解密模块,用于利用第二私钥从第二身份凭证中获取文件密码并利用文件密码对加密后的目标文件进行解密,其中,第二私钥和第二公钥为第二设备的密钥对。
[0107] 本申请实施例提供了一种文件传输方法,方法包括:第二设备在确定第一设备的第一公钥存在于区块链系统中的情况下,生成文件密码,然后通过第一公钥对文件密码进行加密,生成第一设备的第一身份凭证,最后将第一身份凭证和用文件密码加密后的目标文件上传至区块链系统,以使第一设备利用第一私钥从第一身份凭证中获取文件密码并利用文件密码对加密后的目标文件进行解密。本申请采用去中心化的区块链系统,避免服务器遭到破坏则所有的文件信息会被泄露,另外,通过非对称加密的方式,提高了文件传输的安全性。
[0108] 基于相同的技术构思,本发明实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
[0109] 存储器603,用于存放计算机程序;
[0110] 处理器601,用于执行存储器603上所存放的程序时,实现上述步骤。
[0111] 上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry  Standard Architecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0112] 通信接口用于上述电子设备与其他设备之间的通信。
[0113] 存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non‑Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0114] 上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field‑Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0115] 在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法的步骤。
[0116] 在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一方法。
[0117] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
[0118] 需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0119] 以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。