发明内容
本公开实施例至少提供一种数据传输方法、装置、计算机设备和存储介质。
第一方面,本公开实施例提供了一种数据传输方法,应用于客户端,包括:
响应于获取媒体内容的触发操作,基于随机生成的第一加密数据生成第一公钥;
向服务端发送携带所述第一公钥的媒体内容获取请求;
接收所述服务端基于所述媒体内容获取请求反馈的第二公钥,以及利用生成的第一私钥加密后的媒体内容;所述第一私钥为利用所述第一公钥生成的;
基于所述第二公钥和所述第一加密数据生成第二私钥,利用所述第二私钥对所述加密后的媒体内容进行解密后,在所述客户端进行展示。
在一种可能的实施方式中,所述响应于获取媒体内容的触发操作,基于随机生成的第一加密数据生成第一公钥,包括:
响应于获取媒体内容的触发操作,随机生成第一加密数据;
按照预设的秘钥生成算法,对所述第一加密数据进行计算处理,生成所述第一公钥。
在一种可能的实施方式中,所述按照预设的秘钥生成算法,对所述第一加密数据进行计算处理,生成所述第一公钥,包括:
确定以所述秘钥生成算法中的第一常数值为底数、以所述第一加密数据为指数,进行幂运算的第一运算结果;
利用第二常数值,对所述第一运算结果进行取模运算,得到所述第一公钥。
在一种可能的实施方式中,所述基于所述第二公钥和所述第一加密数据生成第二私钥,包括:
确定以所述第二公钥为底数、以所述第一加密数据为指数,进行幂运算的第二运算结果;
利用第二常数值,对所述第二运算结果进行取模运算,得到所述第二私钥。
第二方面,本公开实施例提供了一种数据传输方法,应用于服务端,包括:
响应于接收到客户端发送的媒体内容获取请求,基于随机生成的第二加密数据生成第二公钥;
确定所述媒体内容获取请求中携带的第一公钥,并基于所述第一公钥和所述第二加密数据生成第一私钥;
利用所述第一私钥,对获取的所述媒体内容获取请求对应的媒体内容进行加密,得到加密后的媒体内容;
向所述客户端发送所述第二公钥和所述加密后的媒体内容,以使所述客户端基于所述第二公钥,对所述加密后的媒体内容进行解密并展示。
在一种可能的实施方式中,所述响应于接收到客户端发送的媒体内容获取请求,基于随机生成的第二加密数据生成第二公钥,包括:
响应于接收到客户端发送的媒体内容获取请求,随机生成所述第二加密数据;
按照预设的秘钥生成算法,对所述第二加密数据进行计算处理,生成所述第二公钥。
在一种可能的实施方式中,所述按照预设的秘钥生成算法,对所述第二加密数据进行计算处理,生成所述第二公钥,包括:
确定以所述秘钥生成算法中的第一常数值为底数、以所述第二加密数据为指数,进行幂运算的第三运算结果;
利用第二常数值,对所述第三运算结果进行取模运算,得到所述第二公钥。
在一种可能的实施方式中,所述基于所述第一公钥和所述第二加密数据生成第一私钥,包括:
确定以所述第一公钥为底数、以所述第二加密数据为指数,进行幂运算的第四运算结果;
利用第二常数值,对所述第四运算结果进行取模运算,得到所述第一私钥。
第三方面,本公开实施例还提供一种数据传输装置,应用于客户端,包括:
第一生成模块,用于响应于获取媒体内容的触发操作,基于随机生成的第一加密数据生成第一公钥;
第一发送模块,用于向服务端发送携带所述第一公钥的媒体内容获取请求;
接收模块,用于接收所述服务端基于所述媒体内容获取请求反馈的第二公钥,以及利用生成的第一私钥加密后的媒体内容;所述第一私钥为利用所述第一公钥生成的;
解密模块,用于基于所述第二公钥和所述第一加密数据生成第二私钥,利用所述第二私钥对所述加密后的媒体内容进行解密后,在所述客户端进行展示。
在一种可能的实施方式中,所述第一生成模块,用于响应于获取媒体内容的触发操作,随机生成第一加密数据;
按照预设的秘钥生成算法,对所述第一加密数据进行计算处理,生成所述第一公钥。
在一种可能的实施方式中,所述第一生成模块,用于确定以所述秘钥生成算法中的第一常数值为底数、以所述第一加密数据为指数,进行幂运算的第一运算结果;
利用第二常数值,对所述第一运算结果进行取模运算,得到所述第一公钥。
在一种可能的实施方式中,所述解密模块,用于确定以所述第二公钥为底数、以所述第一加密数据为指数,进行幂运算的第二运算结果;
利用第二常数值,对所述第二运算结果进行取模运算,得到所述第二私钥。
第四方面,本公开实施例还提供一种数据传输装置,应用于服务端,包括:
第二生成模块,用于响应于接收到客户端发送的媒体内容获取请求,基于随机生成的第二加密数据生成第二公钥;
确定模块,用于确定所述媒体内容获取请求中携带的第一公钥,并基于所述第一公钥和所述第二加密数据生成第一私钥;
加密模块,用于利用所述第一私钥,对获取的所述媒体内容获取请求对应的媒体内容进行加密,得到加密后的媒体内容;
第二发送模块,用于向所述客户端发送所述第二公钥和所述加密后的媒体内容,以使所述客户端基于所述第二公钥,对所述加密后的媒体内容进行解密并展示。
在一种可能的实施方式中,所述第二生成模块,用于响应于接收到客户端发送的媒体内容获取请求,随机生成所述第二加密数据;
按照预设的秘钥生成算法,对所述第二加密数据进行计算处理,生成所述第二公钥。
在一种可能的实施方式中,所述第二生成模块,用于确定以所述秘钥生成算法中的第一常数值为底数、以所述第二加密数据为指数,进行幂运算的第三运算结果;
利用第二常数值,对所述第三运算结果进行取模运算,得到所述第二公钥。
在一种可能的实施方式中,所述确定模块,用于确定以所述第一公钥为底数、以所述第二加密数据为指数,进行幂运算的第四运算结果;
利用第二常数值,对所述第四运算结果进行取模运算,得到所述第一私钥。
第五方面,本公开可选实现方式还提供一种计算机设备,处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤;或者,所述机器可读指令被所述处理器执行时执行上述第二方面,或第二方面中任一种可能的实施方式中的步骤
第六方面,本公开可选实现方式还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤;或者,该计算机程序被运行时执行上述第二方面,或第二方面中任一种可能的实施方式中的步骤
关于上述数据传输装置、计算机设备、及计算机可读存储介质的效果描述参见上述数据传输方法的说明,这里不再赘述。
本公开实施例提供的数据传输方法、装置、计算机设备和存储介质,客户端通过在响应于获取媒体内容的触发操作之后,生成与该次触发操作相对应的第一公钥并传输给服务端,能够实现分别为每次触发操作生成对应的第一公钥,从而实现针对每个需要获取的媒体内容,都可以为服务端反馈一个第一公钥,进而服务端可以利用该第一公钥,生成用于对该媒体内容进行加密的第一私钥并实现对媒体内容的加密传输,提高了数据加密的灵活性,进而,在每次传输对应使用的第一私钥数据不同的情况下,数据传输的安全性也将有效提升。
进一步,本公开实施例提供的数据传输方法、装置、计算机设备和存储介质,服务端在接收到客户端发送的媒体内容获取请求后,生成与该媒体内容获取请求相对应的第二公钥,能够实现在接收到不同的媒体内容获取请求后,分别生成不同的第二公钥,提高了生成第二公钥的灵活性;基于客户端传输的第一公钥生成用于加密的第一私钥,然后对媒体内容获取请求对应的媒体内容进行加密传输,由于第一公钥根据媒体内容获取请求的变化而变化,所以生成的第一私钥也将灵活变化,提高了生成的第一私钥的灵活性,进而,提高了加密传输的媒体内容的安全性。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
另外,本公开实施例中的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
在本文中提及的“多个或者若干个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
经研究发现,为了提高数据传输的安全性,客户端和服务端在建立连接之后,均会生成一对用于加密传输的公私钥,然后将公私钥中的公钥发送至另一端并存储各自的私钥。之后,服务端可以基于存储的私钥以及客户端发送的公钥,计算出一个加密密钥,并利用该加密密钥对需要传输的数据进行加密传输。客户端可以基于存储的私钥和服务端发送的公钥,计算得到一个解密密钥,利用该解密密钥对服务端加密传输的数据进行解密,从而得到的需要的数据。
但针对上述方式而言,客户端和服务端生成的公私钥将会长期应用于两者的数据传输,因此,就需要客户端和服务端对自身生成的公钥和对方发送的私钥进行长期存储。这样,不仅会出现加密密钥比较单一的问题,还可能存在客户端或服务端丢失存储的公私钥的情况,导致无法解密或加密,影响了数据的安全传输。
基于上述研究,本公开提供了一种数据传输方法、装置、计算机设备和存储介质,客户端通过在响应于获取媒体内容的触发操作之后,生成与该次触发操作相对应的第一公钥并传输给服务端,能够实现分别为每次触发操作生成对应的第一公钥,从而实现针对每个需要获取的媒体内容,都可以为服务端反馈一个第一公钥,进而服务端可以利用该第一公钥,生成用于对该媒体内容进行加密的第一私钥并实现对媒体内容的加密传输,提高了数据加密的灵活性,进而,在每次传输对应使用的第一私钥数据不同的情况下,传输的安全性也将有效提升。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
需要说明的是,本公开实施例中所提到的特定名词包括:
DH密钥交换算法:通信双方仅通过交换一些可以公开的信息就能够生成出共享的密码数字,而这一密码数字就可以被用作对称密码的密钥。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种数据传输方法进行详细介绍,本公开实施例所提供的数据传输方法的执行主体一般为具有一定计算能力的终端设备或其他处理设备,其中终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、个人数字处理设备(Personal Digital Assistant,PDA)、手持设备、计算设备等;在一些可能的实现方式中,该数据传输方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。下面以执行主体为客户端为例对本公开实施例提供的数据传输方法加以说明。
如图1所示,为本公开实施例提供的一种应用于客户端的数据传输方法的流程图,可以包括以下步骤:
S101:响应于获取媒体内容的触发操作,基于随机生成的第一加密数据生成第一公钥。
本公开实施例所提及的客户端可以包括但不限于智能手机、个人电脑(PersonalComputer,PC)、平板电脑(如IPAD),在具体实施时,任一具有与服务端进行通信的功能的终端均可以为本公开所提及的客户端。
上述媒体内容例如可以为计算数据、资讯信息、音视频内容、小说等等。第一加密数据具体可以为一个随机生成的数值,具体可以为一个大素数。触发操作例如可以为用户搜索媒体内容的操作,查看小说内容的操作等等。第一公钥也可以为一个数值,具体的,第一加密数据对应的数值可以为与第一公钥对应的数值不同。
本公开实施例所提及的数据传输方法可用于小说数据的传输。具体实施时,客户端可以响应于用户发起的查看小说的操作,随机生成一个第一加密数据,并利用第一加密数据生成第一公钥。例如,可以将第一加密数据和预设的加密数值进行相加,将得到的和作为第一公钥;又例如,可以利用预设转换函数,对第一加密数据进行转换,得到第一公钥。
此外,针对每次触发操作,客户端均可以在响应于该触发操作之后,先随机生成一个第一加密数据,再利用生成的该第一加密数据生成第一公钥。在这种情况下,一次触发操作可以对应于一个第一公钥,不同的触发操作对应的第一公钥可以不同。即使需要获取的媒体内容相同,前一次用于获取该媒体内容的触发操作对应的第一公钥,与后一次用于获取该媒体内容的触发操作对应的第一公钥,也可以不同。
在一种实施例中,针对S101,可以按照以下步骤实施:
S101-1:响应于获取媒体内容的触发操作,随机生成第一加密数据。
具体实施时,客户端可以响应于获取媒体内容的触发操作,利用随机算法,随机生成一个大素数,将该随机生成的大素数作为第一加密数据。
S101-2:按照预设的秘钥生成算法,对第一加密数据进行计算处理,生成第一公钥。
这里,预设的秘钥生成算法可以包括基于DH交换算法得到的、用于生成第一公钥的算法。
具体实施时,可以利用预设的秘钥生成算法,对第一加密数据进行计算处理,也即对第一加密数据进行数据转换,从而得到第一公钥。
在一种实施例中,针对上述S101-2,可以按照以下步骤实施:
S101-2-1:确定以秘钥生成算法中的第一常数值为底数、以第一加密数据为指数,进行幂运算的第一运算结果;
S101-2-2:利用第二常数值,对第一运算结果进行取模运算,得到第一公钥。
这里,预设的秘钥生成算法可以包括如下公式一所示的算法:
公式一:Ya=(g^Xa)mod p
其中,Ya表示第一公钥,g表示在客户端和服务端预先确定的第一常数值,Xa表示随机生成的第一加密数据,mod表示取模运算,p表示第二常数值,也是由客户端和服务端预先确定的,g^Xa即为上述第一运算结果。
具体实施时,将第一加密数据代入上述公式一,即可得到第一公钥。
S102:向服务端发送携带第一公钥的媒体内容获取请求。
这里,媒体内容获取请求可以为客户端生成的、用于获取触发操作对应的触发操作的请求,其中携带有第一公钥。例如,媒体内容获取请求可以为获取目标音频的请求,获取目标小说的请求,获取小说第M章第N页内容的请求等等。
具体实施时,客户端在响应触发操作之后,可以确定触发操作对应的需要获取的媒体内容,然后,可以基于需要获取的媒体内容和第一公钥,生成携带第一公钥的媒体内容获取请求并向服务端发送该请求。其中,触发操作对应的需要获取的媒体内容预先存储在服务端中。
在一种实施方式中,客户端也可以在确定触发操作对应的需要获取的媒体内容后,直接基于需要获取的媒体内容生成媒体内容获取请求,之后,可以同步向服务端发送生成的第一公钥和媒体内容获取请求。
S103:接收服务端基于媒体内容获取请求反馈的第二公钥,以及利用生成的第一私钥加密后的媒体内容;第一私钥为利用第一公钥生成的。
这里,第二公钥为服务端在接收到客户端媒发送的媒体内容获取请求后、生成并反馈的。服务端生成第二公钥的方式与客户端生成第一公钥的方式相同,具体的,服务端可以先随机生成第二加密数据,再利用第二加密数据生成第二公钥。其中,第一公钥与第二公钥可以相同,也可以不同,此次不进行限定。
第一私钥为服务端生成的用于对媒体内容获取请求对应的、需要获取的媒体内容进行加密的秘钥,一个媒体内容获取请求对应于一个第一私钥,也即,服务端每接收到一个媒体内容获取请求,即可以生成一个单独用于该请求对应的需要获取的媒体内容,进行加密的第一秘钥。
具体的,第一私钥可以为服务端利用客户端发送的第一公钥生成的。例如,服务端可以将第一公钥和第二加密数据相乘,将相乘的结果作为第一私钥,又例如,可以将第一公钥和第二加密数据作为幂指数乘法,第一公钥和第二加密数据两个数据中,以其中一个作为底数,另外一个作为幂指数,进行幂运算,将得到的结果作为第一私钥。
具体实施时,客户端在将携带第一公钥的媒体内容获取请求发送至服务端后,服务端可以生成与该媒体内容获取请求对应的第二加密数据,利用第二加密数据生成第二公钥,并基于第二加密数据和第一公钥生成第一私钥。同时,服务端可以获取预先存储的与该媒体内容获取请求对应的媒体内容。
然后可以利用第一私钥对获取的媒体内容进行加密,得到加密的媒体内容。最后,服务端可以将加密后的媒体内容和第二公钥一起反馈给客户端。进而,客户端即可以获取到加密后的媒体内容和第二公钥。
S104:基于第二公钥和第一加密数据生成第二私钥,利用第二私钥对加密后的媒体内容进行解密后,在客户端进行展示。
这里,第二私钥为客户端生成的用于解密的密钥。
具体实施时,客户端可以基于DH交换算法对应的第二私钥生成规则,利用第二公钥和第一加密数据生成第二私钥,并将生成的第二私钥作为服务端生成的第一私钥,也即将第二私钥作为解密密码。继而,客户端可以利用第二私钥对加密后的媒体内容进行解密,得到媒体内容。最后,可以将得到的媒体内容渲染展示在客户端。例如,将小说内容展示在客户端,将视频内容展示在客户端。
在一种实施例中,针对上述S104中基于第二公钥和第一加密数据生成第二私钥的步骤,具体可以按照以下步骤实施:
S104-1:确定以第二公钥为底数、以第一加密数据为指数,进行幂运算的第二运算结果;
S104-2:利用第二常数值,对第二运算结果进行取模运算,得到第二私钥。
这里,第二私钥生成规则可以如下公式二所示:
公式二:K′=(Yb^Xa)mod p
这里,K′表示第二私钥,Yb表示第二公钥,g表示在客户端和服务端预先确定的第一常数值,Xa表示随机生成的第一加密数据,mod表示取模运算,p表示第二常数值,也是由客户端和服务端预先确定的,Yb^Xa即为上述第二运算结果。
具体实施时,将第二公钥、第一加密数据代入上述公式二,即可得到第二私钥。
这样,客户端通过在响应于获取媒体内容的触发操作之后,生成与该次触发操作相对应的第一公钥并传输给服务端,能够实现分别为每次触发操作生成对应的第一公钥,从而实现针对每个需要获取的媒体内容,都可以为服务端反馈一个第一公钥,进而服务端可以利用该第一公钥,生成用于对该媒体内容进行加密的第一私钥并实现对媒体内容的加密传输,提高了数据加密的灵活性,进而,在每次传输对应使用的第一私钥数据不同的情况下,传输的安全性也将有效提升。
并且,在第一加密数据仅在客户端使用的基础上,可以保证即使第二公钥和加密传输的媒体内容被第三方获取,在获取不到第一加密数据的情况下,第三方无法实现对加密传输的媒体内容的解密,提高了数据传输的安全性。
另外,本公开实施例还提供了一种应用于服务端的数据传输,基于客户端与服务端之间的交互,实现对媒体内容的安全传输,如图2所示,为本公开实施例所提供的一种应用于服务端的数据传输方法的流程图,可以包括以下步骤:
S201:响应于接收到客户端发送的媒体内容获取请求,基于随机生成的第二加密数据生成第二公钥。
这里,关于媒体内容获取请求可以参照上述应用于客户端的数据传输方法中的各实施例的介绍,此处不再赘述。
第二公钥为服务端在接收到媒体内容获取请求后生成的公钥,用于客户端生成第二私钥。
具体实施时,服务端可以响应于接收到的媒体内容获取请求,随机生成一个第二加密数据,并利用第二加密数据生成第二公钥。例如,可以将第二加密数据和预设的加密数值进行相加,将得到的和作为第二公钥;又例如,可以利用预设转换函数,对第二加密数据进行转换,得到第二公钥。
其中,服务端针对接收到的每个媒体内容获取请求,均可以生成一个与该媒体内容获取请求对应的第二公钥。也即,一个媒体内容获取请求对应于一个第二公钥。
在一种实施例中,针对S201,可以按照以下步骤实施:
S201-1:响应于接收到客户端发送的媒体内容获取请求,随机生成第二加密数据。
具体实施时,服务端可以响应于接收到的媒体内容获取请求,利用随机算法,随机生成一个大素数,将该随机生成的大素数作为第二加密数据。
S201-2:按照预设的秘钥生成算法,对第二加密数据进行计算处理,生成第二公钥。
这里,预设的秘钥生成算法还可以包括基于DH交换算法得到的、用于生成第二公钥的算法。
具体实施时,可以利用预设的秘钥生成算法,对第二加密数据进行计算处理,也即对第二加密数据进行数据转换,从而得到第二公钥。
在一种实施例中,针对上述S201-2,可以按照以下步骤实施:
S201-2-1:确定秘钥生成算法中的第一常数值为底数、以第二加密数据为指数,进行幂运算的第三运算结果;
S201-2-2:利用第二常数值,对第三运算结果进行取模运算,得到第二公钥。
这里,预设的秘钥生成算法还可以包括如下公式三所示的算法:
公式三:Yb=(g^Xb)mod p
其中,Yb表示第二公钥,g表示在客户端和服务端预先确定的第一常数值,Xb表示随机生成的第二加密数据,mod表示取模运算,p表示第二常数值,也是由客户端和服务端预先确定的,g^Xb即为上述第三运算结果。
具体实施时,将第二加密数据代入上述公式三,即可得到第二公钥。
S202:确定媒体内容获取请求中携带的第一公钥,并基于第一公钥和第二加密数据生成第一私钥。
具体实施时,在媒体内容获取请求中携带第一公钥的情况下,服务端可以对接收到的媒体内容获取请求进行解析,确定其中携带的第一公钥,以及确定媒体内容获取请求对应的、需要获取的媒体内容。或者,在媒体内容获取请求和第一公钥同步发送至服务端的情况下,服务端可以直接获取第一公钥,并基于对媒体内容获取请求的解析,确定需要获取的媒体内容。
进一步的,服务端可以从数据库中获取预先存储的上述需要获取的媒体内容。
并且,服务端可以基于DH交换算法对应的第一私钥生成规则,利用第一公钥和第二加密数据生成第一私钥。
在一种实施例中,可以按照以下步骤生成第一私钥:
步骤一、确定以第一公钥为底数、以第二加密数据为指数,进行幂运算的第四运算结果;
步骤二、利用第二常数值,对第四运算结果进行取模运算,得到第一私钥。
这里,第一私钥生成规则可以如下公式四所示:
公式四:K=(Ya^Xb)mod p
这里,K表示第一私钥,Ya表示第一公钥,g表示在客户端和服务端预先确定的第一常数值,Xb表示随机生成的第二加密数据,mod表示取模运算,p表示第二常数值,也是由客户端和服务端预先确定的,Ya^Xb即为上述第四运算结果。
具体实施时,将第一公钥、第二加密数据代入上述公式四,即可得到第一私钥。
S203:利用第一私钥,对获取的媒体内容获取请求对应的媒体内容进行加密,得到加密后的媒体内容。
具体实施时,可以将第一私钥作为加密密码,对获取的媒体内容获取请求对应的媒体内容进行加密,得到加密后的媒体内容。
S204:向客户端发送第二公钥和加密后的媒体内容,以使客户端基于第二公钥,对加密后的媒体内容进行解密并展示。
具体实施时,服务端可以向客户端同步发送第二公钥和加密后的媒体内容,在客户端接收到第二公钥和加密后的媒体内容后,可以按照上述公式二,基于第二公钥和第一加密数据生成第二私钥。并将第二私钥作为第一私钥,利用第二私钥对加密后的媒体内容进行解密,得到媒体内容。最后可以将得到的媒体内容渲染展示在客户端。
这里,之所以第一私钥和第二私钥可以相同,原因在于:
根据上述公式四可知K=(Ya^Xb)mod p,将上述公式一中的Ya代入可得,K=(((g^Xa)mod p)^Xb)mod p,又(((g^Xa)mod p)^Xb)mod p=g^(Xa*Xb)mod p,最终可得K=g^(Xa*Xb)mod p。
根据上述公式二可知,K′=(Yb^Xa)mod p,将上述公式案中的Yb代入可得,K′=(((g^Xb)mod p)^Xa)mod p,又(((g^Xb)mod p)^Xa)mod p=g^(Xa*Xb)mod p。
综上可知,K=K′,也即第一私钥和第二私钥相同。
这样,基于客户端和服务端的交互,可以实现媒体内容的安全传输。
如图3所示,为本公开实例提供的一种客户端和服务端的交互示意图,其中,客户端和服务端可以利用通信网络进行通信交互。客户端可以在响应于获取媒体内容的触发操作后,先执行a、随机生成第一加密数据Xa,再执行b、按照公式一Ya=(g^Xa)mod p,基于Xa和预先确定的第一常数值g以及第二常数值p,生成第一公钥Ya。之后,客户端可以生成携带第一公钥Ya的媒体内容获取请求,并执行c、将媒体内容获取请求发送给服务端。
之后,服务端在接收到媒体内容获取请求后,可以对其进行响应,先执行d、随机生成第二加密数据Xb,再执行e、按照公式三Yb=(g^Xb)mod p,基于Xb、预先确定的第一常数值g和第二常数值p,生成第二公钥Yb。
进一步的,服务端可以执行f、按照公式四K=(Ya^Xb)mod p,基于第一公钥Ya和第二加密数据Xb,以及第二常数值p,生成第一私钥K。然后,执行h、利用第一私钥K对获取的媒体内容获取请求对应的媒体内容进行加密,得到加密后的媒体内容。最后,服务端可以执行r、将加密后的媒体内容和第二公钥Yb反馈至客户端。
之后,客户端可以获取第二公钥Yb和加密后的媒体内容,并执行s、按照公式二K′=(Yb^Xa)mod p,基于第二公钥Yb、第一加密数据Xa和第二常数值p,生成第二私钥K′。
最后,客户端可以执行t、利用第二私钥K′对加密后的媒体内容进行解密,得到媒体内容。进而,客户端可以将得到的媒体内容渲染展示在客户端。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与应用于客户端的数据传输方法对应的应用于客户端的数据传输装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述应用于客户端的数据传输方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
如图4所示,为本公开实施例提供的一种应用于客户端的数据传输装置的示意图,包括:
第一生成模块401,用于响应于获取媒体内容的触发操作,基于随机生成的第一加密数据生成第一公钥;
第一发送模块402,用于向服务端发送携带所述第一公钥的媒体内容获取请求;
接收模块403,用于接收所述服务端基于所述媒体内容获取请求反馈的第二公钥,以及利用生成的第一私钥加密后的媒体内容;所述第一私钥为利用所述第一公钥生成的;
解密模块404,用于基于所述第二公钥和所述第一加密数据生成第二私钥,利用所述第二私钥对所述加密后的媒体内容进行解密后,在所述客户端进行展示。
在一种可能的实施方式中,所述第一生成模块401,用于响应于获取媒体内容的触发操作,随机生成第一加密数据;
按照预设的秘钥生成算法,对所述第一加密数据进行计算处理,生成所述第一公钥。
在一种可能的实施方式中,所述第一生成模块401,用于确定以所述秘钥生成算法中的第一常数值为底数、以所述第一加密数据为指数,进行幂运算的第一运算结果;
利用第二常数值,对所述第一运算结果进行取模运算,得到所述第一公钥。
在一种可能的实施方式中,所述解密模块404,用于确定以所述第二公钥为底数、以所述第一加密数据为指数,进行幂运算的第二运算结果;
利用第二常数值,对所述第二运算结果进行取模运算,得到所述第二私钥。
基于同一发明构思,本公开实施例中还提供了与应用于服务端的数据传输方法对应的应用于服务端的数据传输装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述应用于服务端的数据传输方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
如图5所示,为本公开实施例提供的一种应用于服务端的数据传输装置的示意图,包括:
第二生成模块501,用于响应于接收到客户端发送的媒体内容获取请求,基于随机生成的第二加密数据生成第二公钥;
确定模块502,用于确定所述媒体内容获取请求中携带的第一公钥,并基于所述第一公钥和所述第二加密数据生成第一私钥;
加密模块503,用于利用所述第一私钥,对获取的所述媒体内容获取请求对应的媒体内容进行加密,得到加密后的媒体内容;
第二发送模块504,用于向所述客户端发送所述第二公钥和所述加密后的媒体内容,以使所述客户端基于所述第二公钥,对所述加密后的媒体内容进行解密并展示。
在一种可能的实施方式中,所述第二生成模块501,用于响应于接收到客户端发送的媒体内容获取请求,随机生成所述第二加密数据;
按照预设的秘钥生成算法,对所述第二加密数据进行计算处理,生成所述第二公钥。
在一种可能的实施方式中,所述第二生成模块501,用于确定以所述秘钥生成算法中的第一常数值为底数、以所述第二加密数据为指数,进行幂运算的第三运算结果;
利用第二常数值,对所述第三运算结果进行取模运算,得到所述第二公钥。
在一种可能的实施方式中,所述确定模块502,用于确定以所述第一公钥为底数、以所述第二加密数据为指数,进行幂运算的第四运算结果;
利用第二常数值,对所述第四运算结果进行取模运算,得到所述第一私钥。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
本公开实施例还提供了一种计算机设备,如图6所示,为本公开实施例提供的一种计算机设备结构示意图,包括:
处理器61和存储器62;所述存储器62存储有处理器61可执行的机器可读指令,处理器61用于执行存储器62中存储的机器可读指令,所述机器可读指令被处理器61执行时,处理器61执行下述步骤:S101:响应于获取媒体内容的触发操作,基于随机生成的第一加密数据生成第一公钥;S102:向服务端发送携带第一公钥的媒体内容获取请求;S103:接收服务端基于媒体内容获取请求反馈的第二公钥,以及利用生成的第一私钥加密后的媒体内容;第一私钥为利用第一公钥生成的以及S104:基于第二公钥和第一加密数据生成第二私钥,利用第二私钥对加密后的媒体内容进行解密后,在客户端进行展示;或者,所述机器可读指令被处理器61执行时,处理器61执行下述步骤:S201:响应于接收到客户端发送的媒体内容获取请求,基于随机生成的第二加密数据生成第二公钥;S202:确定媒体内容获取请求中携带的第一公钥,并基于第一公钥和第二加密数据生成第一私钥;S203:利用第一私钥,对获取的媒体内容获取请求对应的媒体内容进行加密,得到加密后的媒体内容以及S204:向客户端发送第二公钥和加密后的媒体内容,以使客户端基于第二公钥,对加密后的媒体内容进行解密并展示。
上述存储器62包括内存621和外部存储器622;这里的内存621也称内存储器,用于暂时存放处理器61中的运算数据,以及与硬盘等外部存储器622交换的数据,处理器61通过内存621与外部存储器622进行数据交换。
上述指令的具体执行过程可以参考本公开实施例中所述的数据传输方法的步骤,此处不再赘述。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的数据传输方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例所提供的数据传输方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的数据传输方法的步骤,具体可参见上述方法实施例,在此不再赘述。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。