CN113761550A - 一种加密的方法和装置 - Google Patents
一种加密的方法和装置 Download PDFInfo
- Publication number
- CN113761550A CN113761550A CN202011224746.2A CN202011224746A CN113761550A CN 113761550 A CN113761550 A CN 113761550A CN 202011224746 A CN202011224746 A CN 202011224746A CN 113761550 A CN113761550 A CN 113761550A
- Authority
- CN
- China
- Prior art keywords
- random key
- data
- key
- generating
- current time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000012545 processing Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 9
- 230000003993 interaction Effects 0.000 description 8
- 230000006854 communication Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2151—Time stamp
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种加密的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:能够在一次会话中,当客户端执行登录操作并且登录成功时,服务端发送第一随机密钥给客户端,在客户端和服务端的数据传输中,客户端或服务端获取发送或接收数据对应的当前时间的时间戳,并分别根据时间戳计算第二随机密钥,利用第一随机密钥和第二随机密钥生成数据密钥,客户端或服务端利用数据密钥加密或解密数据。通过生成数据密钥并加解密数据的技术手段,在一次会话中能够使用动态变化的密钥对传输的数据进行加解密,提高了数据和应用的安全性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种加密的方法和装置。
背景技术
在互联网应用中,数据安全成为必须考虑的因素;通常应用的客户端和服务端之间采用数据加密的方式进行数据的交互;通常客户端在登录服务器之后,服务器动态生成密钥发送给客户端,以供客户端在当前会话的数据交互中使用。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
客户端在登录服务器之后,服务器动态生成密钥,以供客户端在当前会话中使用,造成应用在一次完整的会话中的数据交互使用了固定的密钥对数据加密或解密;如果当前会话被拦截导致密钥泄露,则造成整个会话中所有交互的数据被破译的风险,从而带来数据安全问题。
发明内容
有鉴于此,本发明实施例提供一种加密的方法和装置,能够在一次会话中,当客户端执行登录操作,当登录成功时,服务端发送第一随机密钥给客户端,在客户端和服务端的数据传输中,客户端或服务端获取发送或接收数据对应的当前时间的时间戳,并分别根据时间戳计算第二随机密钥,利用第一随机密钥和第二随机密钥生成数据密钥,客户端或服务端利用数据密钥加密或解密数据。通过生成数据密钥并加解密数据的技术手段,在一次会话中能够使用动态变化的密钥对传输的数据进行加解密,提高了数据和应用的安全性。
为实现上述目的,根据本发明实施例的一个方面,提供了一种加密的方法,其特征在于,应用于客户端,包括:执行登录操作,接收服务端发送的第一随机密钥;;获取所述服务端的时间同步信息,根据所述时间同步信息获取当前时间,基于所述当前时间生成第二随机密钥;基于所述第一随机密钥和所述第二随机密钥生成数据密钥;根据所述数据密钥对数据进行加解密。
可选地,所述加密的方法,其特征在于,
基于所述当前时间生成第二随机密钥,包括:
获取所述当前时间的时间戳;将所述时间戳对设定数值取整,获得第一数值,基于所述第一数值生成所述第二随机密钥。
可选地,所述加密的方法,其特征在于,
基于所述第一数值,生成至少两个临时数值;基于所述至少两个临时数值进行异或运算,得到第二数值;
基于所述第二数值进行扩位运算获得第三数值,根据所述第三数值和设定位数,生成所述第二随机密钥。
可选地,所述加密的方法,其特征在于,
执行登录操作,接收服务端发送的对应于所述登录操作的登录标识;当所述登录标识指示为会话结束时,重新发送登录请求。
为实现上述目的,根据本发明实施例的第二方面,提供了一种加密的方法,其特征在于,应用于服务端,包括:接收客户端的登录请求,发送对应于所述登录请求的反馈消息,当所述反馈消息指示为成功时,发送对应于所述登录请求的第一随机密钥;获取当前时间,基于所述当前时间生成第二随机密钥;基于所述第一随机密钥和所述第二随机密钥生成数据密钥;根据所述数据密钥对数据进行加解密。
可选地,所述加密的方法,其特征在于,
基于所述当前时间生成第二随机密钥,包括:获取所述当前时间的时间戳;将所述时间戳对设定数值取整,获得第一数值,基于所述第一数值生成第二随机密钥。
可选地,所述加密的方法,其特征在于,
基于所述第一数值,生成至少两个临时数值;基于所述至少两个临时数值进行异或运算,得到第二数值;
基于所述第二数值进行扩位运算获得第三数值,根据所述第三数值和设定位数,生成所述第二随机密钥。
为实现上述目的,根据本发明实施例的第三方面,提供了一种加密的装置,其特征在于,应用于客户端,包括:获取第一随机密钥模块、计算第二随机密钥模块和处理加密数据模块;其中,
所述获取第一随机密钥模块,用于执行登录操作,接收服务端发送的第一随机密钥;
所述计算第二随机密钥模块,用于获取所述服务端的时间同步信息,根据所述时间同步信息获取当前时间,基于所述当前时间生成第二随机密钥;
所述处理加密数据模块,用于基于所述第一随机密钥和所述第二随机密钥生成数据密钥;根据所述数据密钥对数据进行加解密。
可选地,所述加密的装置,其特征在于,
基于所述当前时间生成第二随机密钥,包括:
获取所述当前时间的时间戳;将所述时间戳对设定数值取整,获得第一数值,基于所述第一数值生成所述第二随机密钥。
可选地,所述加密的装置,其特征在于,
基于所述第一数值,生成至少两个临时数值;基于所述至少两个临时数值进行异或运算,得到第二数值;
基于所述第二数值进行扩位运算获得第三数值,根据所述第三数值和设定位数,生成所述第二随机密钥。
可选地,所述加密的装置,其特征在于,
执行登录操作,接收服务端发送的对应于所述登录操作的登录标识;当所述登录标识指示为会话结束时,重新发送登录请求。
为实现上述目的,根据本发明实施例的第四方面,提供了一种加密的装置,其特征在于,应用于服务端,包括:发送第一随机密钥模块、计算第二随机密钥模块和处理加密数据模块;其中,
所述发送第一随机密钥模块,用于接收客户端的登录请求,发送对应于所述登录请求的反馈消息,当所述反馈消息指示为成功时,发送对应于所述登录请求的第一随机密钥;
所述计算第二随机密钥模块,用于获取当前时间,基于所述当前时间生成第二随机密钥;
所述处理加密数据模块,用于基于所述第一随机密钥和所述第二随机密钥生成数据密钥;根据所述数据密钥对数据进行加解密。
可选地,所述加密的装置,其特征在于,
基于所述当前时间生成第二随机密钥,包括:获取所述当前时间的时间戳;将所述时间戳对设定数值取整,获得第一数值,基于所述第一数值生成第二随机密钥。
可选地,所述加密的装置,其特征在于,
基于所述第一数值,生成至少两个临时数值;基于所述至少两个临时数值进行异或运算,得到第二数值;
基于所述第二数值进行扩位运算获得第三数值,根据所述第三数值和设定位数,生成所述第二随机密钥。
为实现上述目的,根据本发明实施例的第五方面,提供了一种加密的电子设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述加密的方法中任一所述的方法。
为实现上述目的,根据本发明实施例的第六方面,提供了一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如上述加密的方法中任一所述的方法。
上述发明中的一个实施例具有如下优点或有益效果:能够在一次会话中,当客户端执行登录操作,当登录成功时,服务端发送第一随机密钥给客户端,在客户端和服务端的数据传输中,客户端或服务端获取发送或接收数据对应的当前时间的时间戳,并分别根据时间戳计算第二随机密钥,利用第一随机密钥和第二随机密钥生成数据密钥,客户端或服务端利用数据密钥加密或解密数据。通过生成数据密钥并加解密数据的技术手段,在一次会话中能够使用动态变化的密钥对传输的数据进行加解密,提高了数据和应用的安全性。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是本发明一实施例提供的一种客户端加密的方法的流程示意图;
图2是本发明一实施例提供的一种服务端加密的方法的流程示意图;
图3是本发明一个实施例提供的一种客户端和服务端交互的流程示意图;
图4是本发明一个实施例提供的一种生成第二随机密钥的流程示意图;
图5是本发明一个实施例提供的一种应用于客户端的加密装置的结构示意图;
图6是本发明一个实施例提供的一种应用于服务端的加密装置的结构示意图;
图7是本发明实施例可以应用于其中的示例性系统架构图;
图8是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
如图1所示,本发明实施例提供了一种加密的方法,该方法可以包括以下步骤:
步骤S101:执行登录操作,接收服务端发送的第一随机密钥。
具体地,执行登录操作,即客户端向服务端发送登录请求,当登录成功时,服务端生成第一随机密钥发送给客户端;客户端接收服务端发送的第一随机密钥;其中,第一随机密钥可以为设定长度的字符串,例如:为8个字节的随机字符串,字符串由0-9、a-z组成(例如:1azc78nv为第一随机密钥);第一随机密钥与反馈于登录请求的指示登录成功的反馈消息一起发送给客户端。可以理解的是,若登录请求的反馈消息为失败,则不生成针对该客户端的第一随机密钥。
进一步地,客户端接收与指示登录成功的反馈消息一起发送的登录标识(例如:标记为tokenID),该登录标识用于指示会话从开始到结束的时间范围,当会话结束时,可以设置tokenID(登录标识)为过期或者失效的状态,当登录标识过期或者失效时,客户端需要重新发送登录请求;即,执行登录操作,接收服务端发送的对应于所述登录操作的登录标识;当所述登录标识指示为会话结束时,重新发送登录请求;其中,一次会话是指客户端与服务端的一次通讯过程,包括信息、数据交互,通常一次会话设置一个唯一标识用于标识本次会话,即为上述描述的登录标识。可以理解的是,客户端针对每一次会话接收服务端生成的一个第一随机密钥;即,第一随机密钥在一次会话中有效。
步骤S 102:获取所述服务端的时间同步信息,根据所述时间同步信息获取当前时间,基于所述当前时间生成第二随机密钥。
具体地,获取服务端的时间同步信息,优选地,时间同步信息为时区信息,例如,获取服务端的时区信息并将客户端本地时区设置为服务端的时区信息;例如:服务端的时区信息为GMT+8,其中,GMT指格林威治时间;GMT+8时区即为东八区北京时间;可以理解的时,通过将客户端的本地时区设置为服务端的时间同步信息(例如时区信息),使数据交互的客户端和服务端双方的时间同步。
进一步地,发送或者接收数据时,根据所述时间同步信息获取当前时间;进一步地,获取所述当前时间的时间戳(例如:Unix时间戳);例如:获取当前时间的时间戳;时间戳指示为从1970年1月1日(UTC/GMT的午夜)开始到当前时间所经过的秒数(不考虑闰秒)。一个小时表示为Unix时间戳格式为3600秒;一天表示为时间戳为86400秒,闰秒不计算;例如:在某一个时刻,获取到的当前时间的时间戳为1593322562。进一步地,将所述时间戳对设定数值取整,获得第一数值,基于所述第一数值生成所述第二随机密钥;优选地,将时间戳对60取整,因为Unix时间戳是1970年1月1日以来的秒数,对60取整就是计算从1970年1月1日以来的分钟数,可以理解的是,通过上述计算可以将时间戳的有效时间范围设置为分钟级别,从而将时间戳过期的时间范围从秒级变成分钟级;例如:1593322562对60取整,得到一个整数26555376(即为第一数值);进一步地,基于第一数值计算第二随机密钥的具体步骤与图4所示的步骤S403-步骤S407一致,在此不再赘述。
步骤S 103:基于所述第一随机密钥和所述第二随机密钥生成数据密钥;根据所述数据密钥对数据进行加解密。
具体地,根据步骤S 101所描述的第一随机密钥和步骤S 102所描述的第二随机密钥,生成数据密钥;基于第一随机密钥和第二随机密钥生成数据密钥至少有如下方法:
第一种方法:第一随机密钥在前,第二随机密钥在后,两者组合生成数据密钥;例如:第一随机密钥为1azc78nv;计算得到的第二随机密钥为443714226298966517082241;生成的数据密钥为1azc78nv443714226298966517082241。
第二种方法:第二随机密钥在前,第一随机密钥在后,两者组合生成数据密钥;例如:第一随机密钥为1azc78nv;计算得到的第二随机密钥为443714226298966517082241;生成的数据密钥为4437142262989665170822411azc78nv。
第三种方法:将位数较少的第一随机密钥,插入第二随机密钥设定的位置,生成数据密钥;或者,将第二随机密钥插入第一随机密钥设定的位置,生成数据密钥;例如:第一随机密钥为1azc78nv;计算得到的第二随机密钥为443714226298966517082241;生成的数据密钥为4437142261azc78nv298966517082241。
本发明对基于第一随机密钥和第二随机密钥生成数据密钥的具体方法不做限定;进一步地,利用该数据密钥对数据进行加解密,可以理解的是,对发送的数据进行加密,形成加密数据,并发送所述加密数据到服务端;同时,对接收的数据,利用数据密钥进行解密;在一次会话中,数据密钥为根据时间戳生成,因此,对于客户端来说,加密数据或解密数据所使用的数据密钥在不同的时间范围内为不同。
如图2所示,本发明实施例提供了一种加密的方法,该方法可以包括以下步骤:
步骤S201:接收客户端的登录请求,发送对应于所述登录请求的反馈消息,当所述反馈消息指示为成功时,发送对应于所述登录请求的第一随机密钥。
具体地,服务端接收客户端的登录请求,根据客户端的登录请求,发送对应于登录请求的反馈消息,当反馈消息指示为成功时,发送对应于登录请求的第一随机密钥;第一随机密钥为设定长度的字符串。关于第一随机密钥的描述与步骤S 101一致,在此不再赘述。
步骤S202:获取当前时间,基于所述当前时间生成第二随机密钥。
具体地,当从客户端接收数据或者向客户端发送数据时,获取所述当前时间的时间戳;将所述时间戳对设定数值取整,获得第一数值,基于所述第一数值生成第二随机密钥;获取服务端的当前时间,基于当前时间的时间戳计算第二随机密钥,基于第一随机密钥和第二随机密钥生成数据密钥;关于生成第二随机密钥的描述与步骤S 102一致,在此不再赘述。
步骤S203:基于所述第一随机密钥和所述第二随机密钥生成数据密钥;根据所述数据密钥对数据进行加解密。
具体地,关于基于所述第一随机密钥和所述第二随机密钥生成数据密钥的描述与步骤S 103一致,在此不再赘述;进一步地,利用该数据密钥对数据进行加解密,可以理解的是,对发送的数据进行加密,形成加密数据,并发送所述加密数据到服务端;同时,对接收的数据,利用数据密钥进行解密。
如图3所示,本发明实施例提供了一种客户端与服务端传输加密数据的方法,该方法可以包括以下步骤;
步骤S301:客户端发送登录请求。
步骤S302:服务端接收登录请求,并发送第一随机密钥给客户端。
具体地,步骤S301-步骤S302的描述即为:对于客户端来说,执行登录操作,接收服务端发送的第一随机密钥;对于服务端来说,接收客户端的登录请求,发送对应于所述登录请求的反馈消息,当所述反馈消息指示为成功时,发送对应于所述登录请求的第一随机密钥。
步骤S303:客户端获取服务端的时间同步信息(例如:时区信息),将本地时区设置为所述时区信息,在发送或接收数据时,基于所述时区信息获取当前时间;根据所述当前时间的时间戳,计算第二随机密钥;基于所述第一随机密钥和所述第二随机密钥生成数据密钥,基于数据密钥,加密数据A。
步骤S304:发送加密数据A给服务端。
步骤S305:服务端接收数据,获取当前时间,根据所述当前时间的时间戳,计算第二随机密钥;基于所述第一随机密钥和所述第二随机密钥生成数据密钥;基于所述数据密钥,解密数据A。
具体地,步骤S303-步骤S305描述了客户端加密并发送数据A、服务端接收并解密数据A的示例流程。
步骤S306:服务端获取当前时间,根据所述当前时间的时间戳,计算第二随机密钥;基于所述第一随机密钥和所述第二随机密钥生成数据密钥;基于所述数据密钥,加密数据B。
步骤S307:发送加密数据B给客户端。
步骤S308:客户端接收数据,获取当前时间,根据所述当前时间,计算第二随机密钥;基于所述第一随机密钥和所述第二随机密钥生成数据密钥;基于所述数据密钥,解密数据B。
具体地,步骤S306-步骤S308描述了服务端加密并发送数据B、客户端端接收并解密数据B的示例流程。
进一步地,步骤S301-步骤S308描述了一次会话中,客户端和服务端加密数据、数据交互的流程;可以理解的是,在一次会话中,可以存在零次到多次步骤S303-步骤S305所描述的运行过程、或者(以及)步骤S306-步骤S308的过程以完成一次会话的业务;通常同一个数据发送和接收之间的时间差为毫秒级;当发送数据的时间戳与接收数据的时间戳的差值超过设定阈值时,可能出现解密数据失败的场景,当出现解密失败时,可以通知数据发送方(客户端或服务端)重新发送数据(包括基于新的时间戳计算第二随机密钥的步骤)到接收方(服务端或客户端)的方法。
如图4所示,本发明实施例提供了一种计算第二随机密钥的方法,本方法的示例流程以客户端的流程为例说明;该方法可以包括以下步骤:
步骤S401:执行登录操作,接收服务端发送的第一随机密钥。
步骤S402:获取服务器的时间同步信息(例如时区信息),基于时区获取当前时间的时间戳。
具体地,关于第一随机密钥、时间同步信息、当前时间的时间戳的具体描述与步骤S 101-步骤S 102一致,在此不再赘述。
步骤S403:将当前时间的时间戳对设定数值取整,得到第一数值。
具体地,例如:通过步骤S402获得的时间戳为1593322562,单位为秒;进一步地,当前时间的时间戳对设定数值取整,例如:对60(即为设定数值)取整,得到26555376(即为第一数值);可以理解的是,在本实施例中,优选地将设定数值定为60(1分钟为60秒)可以将以秒为单位的时间戳转换为以分钟为单位的时间戳,其中,设定数值可以是大于等于1的正整数,本发明对设定数值的具体数值不作限定。
步骤S404:基于所述第一数值,生成至少两个临时数值;基于所述至少两个临时数值进行异或运算,得到第二数值。
具体地,仍以步骤S403的第一数值为例说明本步骤,基于该第一数值,生成至少两个临时数值,本实施例以生成两个临时数值为例,例如:第一数值为26555376,分别取其前六位数得到临时数值265553、取后六位数得到临时数值555376;即,基于26555376生成至少两个(以两个为例)临时数值;进一步地,基于所生成的至少两个临时数据进行异或运算,得到第二数值;例如:基于265553和555376进行异或运算,得到816161,816161即为第二数值;根据本步骤的异或运算,提高运算复杂度,降低运算规律性从而提高破译密钥的难度,从而提高数据的安全性。
步骤S405:基于所述第二数值进行扩位运算获得第三数值。
具体地,基于所述第二数值进行扩位运算获得第三数值;其中,扩位运算为扩大第二数值的位数的运算方法,扩位运算的具体方法可以基于第二数值做指数运算、乘积运算、位数数值添加等,扩位运算用于提高第二随机密钥的复杂度;下面仍以步骤S404的第二数值为例说明,例如:第二数值为816161,基于816161进行扩位运算,优选地,基于816161进行指数运算,例如计算其4次幂则计算8161614得到443714226298966517082241(即为第三数值);可以理解的是,通过本步骤的计算,扩大了数值的位数。可选地,对第二数值做扩位运算,也可以将第二数值与步骤S404中的第一数据和/或临时数值做乘积运算。
步骤S406:根据所述第三数值和所述设定位数,生成第二随机密钥。
具体地,根据步骤S405所得到的第三数值,以及设定位数,生成第二随机密钥;其中,设定位数为正整数,例如,优选地,设置24为设定位数,例如24字节;进一步地,判断第三数值是否大于等于24字节,如果大于等于24字节,则取前24字节,如果小于24字节,则需要补位补足24字节,可以理解的是,在设置24为设定位数时,结合将第一随机密钥的示例(设置为8个字节),生成32字节的密钥(例如:符合AES(Advanced Encryption Standard)标准的32字节,即256位的密钥),因此如果第三数值大于等于24字节,取前24字节即可,如果第三数值小于24字节,可以基于字母或者数字生成字符串,加在末尾、前面、或者其他位置,补足24字节;例如,第三数值是12345678901234567890123456,则取123456789012345678901234作为第二随机密钥;如果第三数值是是123456789012345678,使用字母补足后,将123456789012345678abcdef作为第二随机密钥,即,根据所述第三数值和所述设定位数,生成第二随机密钥。
步骤S407:基于第一随机密钥和第二随机密钥,生成数据密钥。
具体地,基于第一随机密钥和第二随机密钥,生成数据密钥;假设获取的第一随机密钥为1azc78nv;计算得到的第二随机密钥为443714226298966517082241;生成数据密钥的方法可以使用第一随机密钥和第二随机密钥组合的方法,例如:组合成的密钥为:1azc78nv443714226298966517082241;也可以其他方法组合或者计算第一随机密钥和第二随机密钥,生成数据密钥;生成数据密钥方法的具体描述与步骤S 103一致,在此不再赘述;进一步地利用该数据密钥用于进一步的数据加密。
本发明对第一随机密钥和第二随机密钥的位数,以及基于时间戳计算第二随机密钥的具体方法、基于第一随机密钥和第二随机密钥生成数据密钥的具体方法不做限定。
如图5所示,本发明实施例提供了一种加密的装置500,包括:获取第一随机密钥模块501、计算第二随机密钥模块502和处理加密数据模块503;其中,
所述获取第一随机密钥模块501,用于执行登录操作,接收服务端发送的第一随机密钥;
所述计算第二随机密钥模块502,用于获取所述服务端的时间同步信息,根据所述时间同步信息获取当前时间,基于所述当前时间生成第二随机密钥;
所述处理加密数据模块503,用于基于所述第一随机密钥和所述第二随机密钥生成数据密钥;根据所述数据密钥对数据进行加解密。
可选地,所述计算第二随机密钥模块502,用于获取所述当前时间的时间戳;将所述时间戳对设定数值取整,获得第一数值,基于所述第一数值生成所述第二随机密钥。
可选地,所述计算第二随机密钥模块502,用于基于所述第一数值,生成至少两个临时数值;基于所述至少两个临时数值进行异或运算,得到第二数值;基于所述第二数值进行扩位运算获得第三数值,根据所述第三数值和设定位数,生成所述第二随机密钥。
可选地,所述获取第一随机密钥模块501,用于执行登录操作,接收服务端发送的对应于所述登录操作的登录标识;当所述登录标识指示为会话结束时,重新发送登录请求。
如图6所示,本发明实施例提供了一种加密的装置600,包括:发送第一随机密钥模块601、计算第二随机密钥模块602和处理加密数据模块603;其中,
所述发送第一随机密钥模块601,用于接收客户端的登录请求,发送对应于所述登录请求的反馈消息,当所述反馈消息指示为成功时,发送对应于所述登录请求的第一随机密钥;
所述计算第二随机密钥模块602,用于获取当前时间,基于所述当前时间生成第二随机密钥;
所述处理加密数据模块603,用于基于所述第一随机密钥和所述第二随机密钥生成数据密钥;根据所述数据密钥对数据进行加解密
可选地,所述计算第二随机密钥模块602,用于基于所述当前时间生成第二随机密钥,包括:获取所述当前时间的时间戳;将所述时间戳对设定数值取整,获得第一数值,基于所述第一数值生成第二随机密钥。
可选地,所述计算第二随机密钥模块602,用于基于所述第一数值,生成至少两个临时数值;基于所述至少两个临时数值进行异或运算,得到第二数值;基于所述第二数值进行扩位运算获得第三数值,根据所述第三数值和设定位数,生成所述第二随机密钥。
本发明实施例还提供了一种加密的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一实施例提供的方法。
本发明实施例还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例提供的方法。
图7示出了可以应用本发明实施例的加密的方法或加密的装置的示例性系统架构700。
如图7所示,系统架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种客户端应用,例如电子商城客户端应用、网页浏览器应用、搜索类应用、即时通信工具和邮箱客户端等。
终端设备701、702、703可以是具有显示屏并且支持各种客户端应用的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所使用的客户端应用提供支持的后台管理服务器。后台管理服务器可以对接收到的客户端登录请求进行处理,并将登录成功的反馈消息以及第一随机密钥反馈给终端设备;并且客户端与服务端分别生成数据密钥,对传输的数据进行加解密。
需要说明的是,本发明实施例所提供的加密的方法一般由终端设备701、702、703或者服务器705执行,相应地,加密的装置一般设置于终端设备701、702、703中或者服务器705中。
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机系统800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块和/或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块和/或单元也可以设置在处理器中,例如,可以描述为:一种处理器包括获取第一随机密钥模块、计算第二随机密钥模块和处理加密数据模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,计算第二随机密钥模块还可以被描述为“获取当前时间的时间戳,计算第二随机密钥的模块”。又例如:一种处理器包括发送第一随机密钥模块、计算第二随机密钥模块和处理加密数据模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,计算第二随机密钥模块还可以被描述为“获取当前时间的时间戳,计算第二随机密钥的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:客户端执行登录操作,接收服务端发送的第一随机密钥;获取所述服务端的时间同步信息,根据所述时间同步信息获取当前时间,基于所述当前时间生成第二随机密钥;基于所述第一随机密钥和所述第二随机密钥生成数据密钥;根据所述数据密钥对数据进行加解密;服务端接收客户端的登录请求,发送对应于所述登录请求的反馈消息,当所述反馈消息指示为成功时,发送对应于所述登录请求的第一随机密钥;获取当前时间,基于所述当前时间生成第二随机密钥;基于所述第一随机密钥和所述第二随机密钥生成数据密钥;根据所述数据密钥对数据进行加解密。
该方法能够在一次会话中,当客户端执行登录操作,当登录成功时,服务端发送第一随机密钥给客户端,在客户端和服务端的数据传输中,客户端或服务端获取发送或接收数据对应的当前时间的时间戳,并分别根据时间戳计算第二随机密钥,利用第一随机密钥和第二随机密钥生成数据密钥,客户端或服务端利用数据密钥加密或解密数据。通过生成数据密钥并加解密数据的技术手段,在一次会话中能够使用动态变化的密钥对传输的数据进行加解密,提高了数据和应用的安全性。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (11)
1.一种加密的方法,其特征在于,包括:
执行登录操作,接收服务端发送的第一随机密钥;
获取所述服务端的时间同步信息,根据所述时间同步信息获取当前时间,基于所述当前时间生成第二随机密钥;
基于所述第一随机密钥和所述第二随机密钥生成数据密钥;根据所述数据密钥对数据进行加解密。
2.根据权利要求1所述的方法,其特征在于,
基于所述当前时间生成第二随机密钥,包括:
获取所述当前时间的时间戳;将所述时间戳对设定数值取整,获得第一数值,基于所述第一数值生成所述第二随机密钥。
3.根据权利要求2所述的方法,其特征在于,
基于所述第一数值,生成至少两个临时数值;基于所述至少两个临时数值进行异或运算,得到第二数值;
基于所述第二数值进行扩位运算获得第三数值,根据所述第三数值和设定位数,生成所述第二随机密钥。
4.根据权利要求1所述的方法,其特征在于,
执行登录操作,接收服务端发送的对应于所述登录操作的登录标识;当所述登录标识指示为会话结束时,重新发送登录请求。
5.一种加密的方法,其特征在于,包括:
接收客户端的登录请求,发送对应于所述登录请求的反馈消息,当所述反馈消息指示为成功时,发送对应于所述登录请求的第一随机密钥;
获取当前时间,基于所述当前时间生成第二随机密钥;
基于所述第一随机密钥和所述第二随机密钥生成数据密钥;根据所述数据密钥对数据进行加解密。
6.根据权利要求5所述的方法,其特征在于,
基于所述当前时间生成第二随机密钥,包括:
获取所述当前时间的时间戳;
将所述时间戳对设定数值取整,获得第一数值,基于所述第一数值生成第二随机密钥。
7.根据权利要求6所述的方法,其特征在于,
基于所述第一数值,生成至少两个临时数值;基于所述至少两个临时数值进行异或运算,得到第二数值;
基于所述第二数值进行扩位运算获得第三数值,根据所述第三数值和设定位数,生成所述第二随机密钥。
8.一种加密的装置,其特征在于,包括:获取第一随机密钥模块、计算第二随机密钥模块和处理加密数据模块;其中,
所述获取第一随机密钥模块,用于执行登录操作,接收服务端发送的第一随机密钥;
所述计算第二随机密钥模块,用于获取所述服务端的时间同步信息,根据所述时间同步信息获取当前时间,基于所述当前时间生成第二随机密钥;
所述处理加密数据模块,用于基于所述第一随机密钥和所述第二随机密钥生成数据密钥;根据所述数据密钥对数据进行加解密。
9.一种加密的装置,其特征在于,包括:发送第一随机密钥模块、计算第二随机密钥模块和处理加密数据模块;其中,
所述发送第一随机密钥模块,用于接收客户端的登录请求,发送对应于所述登录请求的消息,当所述消息指示为成功时,发送对应于所述登录请求的第一随机密钥;
所述计算第二随机密钥模块,用于获取当前时间,基于所述当前时间生成第二随机密钥;
所述处理加密数据模块,用于基于所述第一随机密钥和所述第二随机密钥生成数据密钥;根据所述数据密钥对数据进行加解密。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4或5-7中任一所述的方法。
11.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-4或5-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011224746.2A CN113761550A (zh) | 2020-11-05 | 2020-11-05 | 一种加密的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011224746.2A CN113761550A (zh) | 2020-11-05 | 2020-11-05 | 一种加密的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113761550A true CN113761550A (zh) | 2021-12-07 |
Family
ID=78785986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011224746.2A Pending CN113761550A (zh) | 2020-11-05 | 2020-11-05 | 一种加密的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113761550A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114615060A (zh) * | 2022-03-10 | 2022-06-10 | 北京字节跳动网络技术有限公司 | 一种数据传输方法、装置、计算机设备和存储介质 |
CN117040944A (zh) * | 2023-10-10 | 2023-11-10 | 深圳市旗云智能科技有限公司 | 无线物联网远程信号传输装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102118392A (zh) * | 2011-01-18 | 2011-07-06 | 南京朗睿软件科技有限公司 | 数据传输的加密/解密方法及系统 |
US9264404B1 (en) * | 2012-08-15 | 2016-02-16 | Marvell International Ltd. | Encrypting data using time stamps |
CN105357191A (zh) * | 2015-10-28 | 2016-02-24 | 北京奇虎科技有限公司 | 用户数据的加密方法及装置 |
CN106603234A (zh) * | 2015-10-14 | 2017-04-26 | 阿里巴巴集团控股有限公司 | 一种设备身份认证的方法、装置和系统 |
US10311240B1 (en) * | 2015-08-25 | 2019-06-04 | Google Llc | Remote storage security |
CN109921894A (zh) * | 2019-02-13 | 2019-06-21 | 平安科技(深圳)有限公司 | 数据传输加密方法、装置及存储介质、服务器 |
CN110149209A (zh) * | 2019-04-15 | 2019-08-20 | 深圳奇迹智慧网络有限公司 | 物联网设备及其提高数据传输安全性的方法和装置 |
-
2020
- 2020-11-05 CN CN202011224746.2A patent/CN113761550A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102118392A (zh) * | 2011-01-18 | 2011-07-06 | 南京朗睿软件科技有限公司 | 数据传输的加密/解密方法及系统 |
US9264404B1 (en) * | 2012-08-15 | 2016-02-16 | Marvell International Ltd. | Encrypting data using time stamps |
US10311240B1 (en) * | 2015-08-25 | 2019-06-04 | Google Llc | Remote storage security |
CN106603234A (zh) * | 2015-10-14 | 2017-04-26 | 阿里巴巴集团控股有限公司 | 一种设备身份认证的方法、装置和系统 |
CN105357191A (zh) * | 2015-10-28 | 2016-02-24 | 北京奇虎科技有限公司 | 用户数据的加密方法及装置 |
CN109921894A (zh) * | 2019-02-13 | 2019-06-21 | 平安科技(深圳)有限公司 | 数据传输加密方法、装置及存储介质、服务器 |
CN110149209A (zh) * | 2019-04-15 | 2019-08-20 | 深圳奇迹智慧网络有限公司 | 物联网设备及其提高数据传输安全性的方法和装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114615060A (zh) * | 2022-03-10 | 2022-06-10 | 北京字节跳动网络技术有限公司 | 一种数据传输方法、装置、计算机设备和存储介质 |
CN117040944A (zh) * | 2023-10-10 | 2023-11-10 | 深圳市旗云智能科技有限公司 | 无线物联网远程信号传输装置 |
CN117040944B (zh) * | 2023-10-10 | 2024-04-26 | 深圳市旗云智能科技有限公司 | 无线物联网远程信号传输装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109886692B (zh) | 基于区块链的数据传输方法、装置、介质及电子设备 | |
CN105376261B (zh) | 一种用于即时通讯消息的加密方法及系统 | |
CN112055004A (zh) | 一种基于小程序的数据处理方法和系统 | |
CN112400299B (zh) | 一种数据交互方法及相关设备 | |
CN112437044B (zh) | 即时通讯方法和装置 | |
WO2023160420A1 (zh) | 群组消息加密方法、装置、设备和存储介质 | |
CN113761550A (zh) | 一种加密的方法和装置 | |
CN113300999B (zh) | 信息处理方法、电子设备和可读存储介质 | |
CN111030827A (zh) | 信息交互方法、装置、电子设备、及存储介质 | |
CN112966287A (zh) | 获取用户数据的方法、系统、设备和计算机可读介质 | |
CN114499857B (zh) | 一种实现大数据量子加解密中数据正确性与一致性的方法 | |
CN106161363B (zh) | 一种ssl连接建立的方法及系统 | |
CN111181920A (zh) | 一种加解密的方法和装置 | |
CN114037447A (zh) | 离线交易的方法和装置 | |
CN112329044A (zh) | 信息获取方法、装置、电子设备和计算机可读介质 | |
CN113810779B (zh) | 码流验签方法、装置、电子设备和计算机可读介质 | |
CN116155491A (zh) | 安全芯片的对称密钥同步方法及安全芯片装置 | |
CN112995210B (zh) | 一种数据传输方法、装置及电子设备 | |
CN115567263A (zh) | 一种数据传输管理的方法、数据处理的方法和装置 | |
CN111885510B (zh) | 一种考勤方法、考勤客户端和考勤系统 | |
CN116888924A (zh) | 使用计数器模式加密和密钥的加密通信 | |
CN112926076B (zh) | 一种数据处理的方法、装置和系统 | |
CN115378743B (zh) | 信息加密传输方法、装置、设备和介质 | |
CN113507363B (zh) | 数据处理的方法、装置、电子设备和存储介质 | |
KR20150101896A (ko) | 인터클라우드 환경에서의 데이터 공유 시스템 및 공유 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |