本发明涉及数据存储技术,更具体的说,是涉及一种数据加密方法、装置、数据解密方法及装置。
背景技术:
现有的路由数据的存储共享技术包括vuex、redux、sessionstorage(会话存储)、localstorage(本地存储)、cookie(终端本地存储)等。其中vuex是基于vue实现的一个数据存储方案,redux是基于react实现的一个数据存储方案,两者可以在不同组件之间实现数据共享;sessionstorage、localstorage以及cookie是会话存储的一种实现。sessionstorage是html5新增的一个会话存储对象,用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。localstorage对象是html5的客户端存储持久化数据的方案,可以将所有数据保存在本地,因为其是永久存储,不会过期,除非主动删除。cookie由于其容量较小,所以一般用于存储一些用户信息等,可以设置过期时间,也可以设置自动删除。
上述各种存储共享技术各有各的缺点,如vuex与redux在使用的过程中,如果页面刷新,则原先保存的页面数据或参数会丢失,导致页面异常;sessionstorage因为存储的数据在浏览器里面都是明文的,因此在安全性方面有很大的问题;localstorage作为一个持久化存储方案,除非用户自己手动删除,否则不会主动过期,数据安全更加难以保证;cookie则因为容量太小,不适合作为大数据存储方案。
技术实现要素:
有鉴于此,本发明提供如下技术方案:
一种数据加密方法,应用于会话存储技术中,包括:
获取前端路由页面或窗口的待加密数据;
基于所述待加密数据进行文本重组,得到重组加密数据;
对所述重组加密数据进行第一加密,得到第一加密数据;
采用第一算法得到安全签名;
将所述第一加密数据与所述安全签名组合,得到加密数据。
可选的,所述基于所述待加密数据进行文本重组,得到重组加密数据,包括:
采用高级加密标准aes对所述待加密数据进行文本重组,得到重组加密数据。
可选的,所述重组加密数据中包括:公钥、用户认证令牌、待加密数据、消息id、时间戳、补位数据和随机数据。
可选的,所述对所述重组加密数据进行第一加密,得到第一加密数据,包括:
采用安全散列算法sha-256对所述重组加密数据进行第一加密,得到第一加密数据。
可选的,所述采用第一算法得到安全签名,包括:
采用安全散列算法sha-1得到安全签名。
可选的,在所述将所述第一加密数据与所述安全签名组合,得到加密数据后,还包括:
在检测到前端路由页面或窗口关闭后,删除所述加密数据。
一种数据解密方法,应用于会话存储技术中,包括:
获取加密数据;
根据预设规则以及所述加密数据计算确定安全签名;
在所述安全签名与所述加密数据中的安全签名相同的情况下,得到第一加密数据;
根据预设解密算法对所述第一加密数据进行解密,得到重组加密数据;
根据预设组合规则对所述重组加密数据进行文本拆分,得到解密数据。
可选的,所述根据预设解密算法对所述第一加密数据进行解密,得到重组加密数据,包括:
采用安全散列算法sha-256的反编码算法对所述第一加密数据进行解密,得到重组加密数据。
可选的,所述根据预设组合规则对所述重组加密数据进行文本拆分,得到解密数据,包括:
根据高级加密标准aes的组合规则对所述重组加密数据进行文本拆分,得到解密数据。
一种数据加密装置,应用于会话存储技术中,包括:
数据获取模块,用于获取前端路由页面或窗口的待加密数据;
文本重组模块,用于基于所述待加密数据进行文本重组,得到重组加密数据;
第一加密模块,用于对所述重组加密数据进行第一加密,得到第一加密数据;
签名获取模块,用于采用第一算法得到安全签名;
加密组合模块,用于将所述第一加密数据与所述安全签名组合,得到加密数据。
一种数据解密装置,应用于会话存储技术中,包括:
数据获取模块,用于获取加密数据;
签名确定模块,用于根据预设规则以及所述加密数据计算确定安全签名;
第一解密模块,用于在所述安全签名与所述加密数据中的安全签名相同的情况下,得到第一加密数据;
第二解密模块,用于根据预设解密算法对所述第一加密数据进行解密,得到重组加密数据;
拆分解密模块,用于根据预设组合规则对所述第一解密数据进行文本拆分,得到解密数据。
经由上述的技术方案可知,与现有技术相比,本发明实施例公开了一种数据加密方法及装置,应用于会话存储技术中,首先获取前端路由页面或窗口的待加密数据,基于所述待加密数据进行文本重组,得到重组加密数据,然后对所述重组加密数据进行第一加密,得到第一加密数据,采用第一算法得到安全签名,将所述第一加密数据与所述安全签名组合,得到加密数据;对应的,本申请还公开了针对于上述数据加密方法的反向解密方法及装置。所述加密方法、装置、解密方法及装置,能够对前端路由页面或窗口产生的数据进行文本重组和加密,使得待加密数据不会明文展示于用户;同时会话存储技术保证在用户关闭前端页面或窗口后,自动删除加密数据,从而能够有效保证路由数据的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种数据加密方法的流程图;
图2为本发明实施例公开的另一种数据加密方法的流程图;
图3为本发明实施例公开的一种数据解密方法的流程图;
图4为本发明实施例公开的一个完整的数据加密和数据解密的流程示意图;
图5为本发明实施例公开的一种数据加密装置的结构示意图;
图6为本发明实施例公开的另一种数据解密装置的结构示意图;
图7为本发明实施例公开的一种数据解密装置的结构示意图。
具体实施方式
为了引用和清楚起见,下文中使用的技术名词的说明、简写或缩写总结如下:
aes:advancedencryptionstandard,高级加密标准,为一种最常见的对称加密算法,对称加密算法也就是加密和解密用相同的密钥。
sha:thesecurehashalgorithm,安全散列算法,由美国国家标准和技术协会(nationalinstituteofstandardsandtechnology,nist)于1993年提出,并被定义为安全散列标准(securehashstandard,shs)。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例公开的一种数据加密方法的流程图,参见图1所示,数据加密方法可以包括:
步骤101:获取前端路由页面或窗口的待加密数据。
前端路由页面或窗口中的数据可能涉及用户隐私信息,因此,需要对这些前端路由页面或窗口中的数据进行加密,以保证数据安全。本实施例中,首先获取前端路由页面或窗口中的待加密数据。
步骤102:基于所述待加密数据进行文本重组,得到重组加密数据。
为了降低经过加密处理的数据被破解的风险,本申请实施例中,可以对待加密数据经过至少两次加密相关处理,以提高加密数据的安全性。
对所述待加密数据的第一次加密处理为文本重组,本实施例中,文本重组后的重组加密数据包含的数据内容必须包含待加密数据,即会话消息本身,而对其他数据内容不做固定限制,例如,除了待加密数据外,重组加密数据可以但不限制为包括公钥、用户令牌、随机数、时间戳等数据中的任意一种或几种。
在后续的实施例中,将会对文本重组的具体实现做详细描述,在此不再过多介绍。
步骤103:对所述重组加密数据进行第一加密,得到第一加密数据。
经过第一次加密处理后,再次对重组加密数据进行进一步加密处理。进一步的加密处理可以采用多种已有的或未来可能出现的数据加密算法来实现,其目的是为了对待加密数据进行两次不同方式的加密,以提高最终得到的加密数据的安全性。
步骤104:采用第一算法得到安全签名。
除了上述两次加密,本申请实施例中还可以进一步生成安全签名。该安全签名用于验证用户身份,只有在用户端根据预设规则和加密数据计算出的安全签名准确的情况下,才会给用户继续解密前述加密数据的机会。
其中,所述第一算法可以和前述第一加密的算法属于同一类别的算法,也可以是不同类别的算法。
步骤105:将所述第一加密数据与所述安全签名组合,得到加密数据。
将第一加密数据与安全签名组合在一起,生成最终的加密数据。在没有安全签名的情况下,加密数据是比较容易被反编译的,因此将第一加密数据与安全签名组合在一起,提高加解密的复杂度,进而提高数据的安全可靠性。
需要说明的是,在用户需要对加密数据进行解密操作时,只有先给出准确的安全签名,才能够得到第一加密数据并对其进行进一步的解密。若用户端给出的安全签名不准确,则不会获得所述第一加密数据。
本实施例中,所述数据加密方法能够对前端路由页面或窗口产生的数据进行文本重组和加密,使得待加密数据不会明文展示于用户;同时会话存储技术保证在用户关闭前端页面或窗口后,自动删除加密数据,从而能够有效保证路由数据的安全性。
上述实施例中,所述基于所述待加密数据进行文本重组,得到重组加密数据,可以包括:采用高级加密标准aes对所述待加密数据进行文本重组,得到重组加密数据。高级加密标准aes作为对称密钥加密算法中最流行的算法之一,具有广泛的应用范围,本申请实施例中采用高级加密标准aes对待加密数据进行文本重组,具有很好的技术应用前提。
所述重组加密数据中可以但不限制为包括:公钥、用户认证令牌、待加密数据、消息id、时间戳、补位数据和随机数据。在一个具体实现中,文本重组的形式可以是:用高级加密标准aes算法加密key(公钥)+token(用户令牌)+message(待加密数据)+msgid(信息id)+timestamp(时间戳)+random(随机数)+padding(补位);以“健康档案”为例:文本重组为:
key=ce17c34db4&token=eyjhbgciwzhsuzi1nij9&message=健康档案
&msgid=msd0001×tamp=1561359403145&random=39gh&padding=1792。首先待加密数据message根据场景需求前后加上aes钥匙,消息id,token,时间戳,随机数及补位重组,这部分内容与其他的加密算法不会重合,因为待加密数据位置和使用的key,随机数,token都不一样。
关于补位,因为aes加密的原数据长度要求是16的整数倍,但实际操作过程中并不能保证每次待加密数据的长度都能为16的整数倍,所以这时候就需要进行补位,再进行加密才能得到正确的加密数据。例如:经过加密后的文本变为:xwyqtex_rrppr97g4j5lkxtanjecpejuef8aqkymbjc共43个字符,比16的3倍48要少5,所以整个时候加上“00000”作为补位。
上述实施例中,所述对所述重组加密数据进行第一加密,得到第一加密数据,可以包括:采用安全散列算法sha-256对所述重组加密数据进行第一加密,得到第一加密数据。
所述采用第一算法得到安全签名,可以包括:采用安全散列算法sha-1得到安全签名。
图2为本发明实施例公开的另一种数据加密方法的流程图,如图2所示,数据加密方法可以包括:
步骤201:获取前端路由页面或窗口的待加密数据。
步骤202:基于所述待加密数据进行文本重组,得到重组加密数据。
步骤203:对所述重组加密数据进行第一加密,得到第一加密数据。
步骤204:采用第一算法得到安全签名。
步骤205:将所述第一加密数据与所述安全签名组合,得到加密数据。
步骤206:在检测到前端路由页面或窗口关闭后,删除所述加密数据。
会话存储技术sessionstorage在应用过程中,当检测到前端路由页面或窗口关闭后,为了保证数据安全,将会删除与前端路由页面或窗口有关的所有加密数据,以防止后续有其他无关人员获取上述加密数据,并采用一定的技术手段对加密数据进行解密,造成隐私数据泄露。
图3为本发明实施例公开的一种数据解密方法的流程图,图3所示数据解密方法也应用于会话存储技术中,参见图3所示,数据解密方法可以包括:
步骤301:获取加密数据。
该加密数据为采用前面实施例公开的数据加密方法加密得到的数据。本实施例中,需要对上述加密数据进行解密操作,首先获取加密数据。
步骤302:根据预设规则以及所述加密数据计算确定安全签名。
系统中可以内置有关加密的加密协议,该加密协议中可以包括加密规则、加密算法等信息,以便于系统在需要对加密数据进行解密操作时,按照前述加密规则、加密算法等反向计算获得对应的解密数据,即没有加密前的相关数据。
本实施例中,在获取到加密数据后,首先需要计算该加密数据对应的安全签名。具体的,计算安全签名可以依据预设规则,如预设的解密规则或解密算法,结合加密数据中的一些信息,计算得到该加密数据的安全签名。例如,在数据加密方法实施例中,可以采用安全散列算法sha-1得到安全签名,则在数据解密方法中,也可以采用安全散列算法sha-1得到安全签名。
步骤303:在所述安全签名与所述加密数据中的安全签名相同的情况下,得到第一加密数据。
确定安全签名后,首先需要将安全签名与加密数据中的安全签名进行比较,若计算出的安全签名与加密数据中的安全签名相同,则可以进一步对加密数据进行后续的解密操作;若算出的安全签名与加密数据中的安全签名不相同,则不允许继续对加密数据进行后续操作。
本实施例中,在所述安全签名与所述加密数据中的安全签名相同的情况下,得到第一加密数据,该第一加密数据对应数据加密方法实施例中所述的第一加密数据。
步骤304:根据预设解密算法对所述第一加密数据进行解密,得到重组加密数据。
得到第一加密数据后,可以进一步对第一加密数据进行相关的解密操作,得到重组加密数据,该重组加密数据对应数据加密方法实施例中所述的重组加密数据,即和其他一些信息,如公钥、用户令牌等信息组合在一起原始数据。
步骤305:根据预设组合规则对所述重组加密数据进行文本拆分,得到解密数据。
根据预设组合规则可以确定原始数据(解密数据)和其他一些数据(公钥、用户令牌、补位数等)是如何组合在一起的,这样根据预设组合规则可以对所述重组加密数据进行对应的文本拆分,得到解密数据。
本实施例中,能够对前述实施例公开的数据加密方法得到的加密数据逐层解密,得到原始未加密数据。该数据解密方法配合前述数据加密方法,使得待加密数据不会明文展示于用户,有效提高了前端路由数据的安全性。
上述实施例中,所述根据预设解密算法对所述第一加密数据进行解密,得到重组加密数据,可以包括:采用安全散列算法sha-256的反编码算法对所述第一加密数据进行解密,得到重组加密数据。由于在加密过程中,可以采用安全散列算法sha-256对所述重组加密数据进行第一加密,得到第一加密数据,因此在数据解密方法中,对应的可采用安全散列算法sha-256的反编码算法对所述第一加密数据进行解密,得到重组加密数据。
上述实施例中,所述根据预设组合规则对所述重组加密数据进行文本拆分,得到解密数据,可以包括:根据高级加密标准aes的组合规则对所述重组加密数据进行文本拆分,得到解密数据。由于在数据加密方法实施例中,可以采用高级加密标准aes对所述待加密数据进行文本重组,得到重组加密数据。因此,在数据解密方法的实施例中,对应的可以根据高级加密标准aes的组合规则对所述重组加密数据进行文本拆分,得到解密数据。其中,所述重组加密数据中可以但不限制为包括:公钥、用户认证令牌、待加密数据、消息id、时间戳、补位数据和随机数据。
图4为本发明实施例公开的一个完整的数据加密和数据解密的流程示意图,可结合图4理解前述内容。其中,对于判断模块,仅有一个箭头流出的代表该判断符合要求。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
上述本发明公开的实施例中详细描述了方法,对于本发明的方法可采用多种形式的装置实现,因此本发明还公开了一种装置,下面给出具体的实施例进行详细说明。
图5为本发明实施例公开的一种数据加密装置的结构示意图,该装置可应用于会话存储技术中,参见图5所示,数据加密装置50可以包括:
数据获取模块501,用于获取前端路由页面或窗口的待加密数据。
文本重组模块502,用于基于所述待加密数据进行文本重组,得到重组加密数据。
第一加密模块503,用于对所述重组加密数据进行第一加密,得到第一加密数据。
签名获取模块504,用于采用第一算法得到安全签名。
加密组合模块505,用于将所述第一加密数据与所述安全签名组合,得到加密数据。
本实施例中,所述数据加密装置能够对前端路由页面或窗口产生的数据进行文本重组和加密,使得待加密数据不会明文展示于用户;同时会话存储技术保证在用户关闭前端页面或窗口后,自动删除加密数据,从而能够有效保证路由数据的安全性。
上述实施例中,所述文本重组模块502具体可用于:采用高级加密标准aes对所述待加密数据进行文本重组,得到重组加密数据。
上述实施例中,所述第一加密模块503具体可用于:采用安全散列算法sha-256对所述重组加密数据进行第一加密,得到第一加密数据。
所述签名获取模块504具体可用于:采用安全散列算法sha-1得到安全签名。
图6为本发明实施例公开的另一种数据解密装置的结构示意图,参见图6所示,数据加密装置60除了上述数据获取模块501、文本重组模块502、第一加密模块503、签名获取模块504和加密组合模块505外,还可以包括数据删除模块601,用于在检测到前端路由页面或窗口关闭后,删除所述加密数据。
会话存储技术sessionstorage在应用过程中,当检测到前端路由页面或窗口关闭后,为了保证数据安全,将会删除与前端路由页面或窗口有关的所有加密数据,以防止后续有其他无关人员获取上述加密数据,并采用一定的技术手段对加密数据进行解密,造成隐私数据泄露。
图7为本发明实施例公开的一种数据解密装置的结构示意图,该装置应用于会话存储技术中,结合图7所示,数据解密装置70可以包括:
数据获取模块701,用于获取加密数据。
签名确定模块702,用于根据预设规则以及所述加密数据计算确定安全签名。
第一解密模块703,用于在所述安全签名与所述加密数据中的安全签名相同的情况下,得到第一加密数据。
第二解密模块704,用于根据预设解密算法对所述第一加密数据进行解密,得到重组加密数据。
拆分解密模块705,用于根据预设组合规则对所述第一解密数据进行文本拆分,得到解密数据。
本实施例中,能够对前述实施例公开的数据加密方法得到的加密数据逐层解密,得到原始未加密数据。该数据解密方法配合前述数据加密方法,使得待加密数据不会明文展示于用户,有效提高了前端路由数据的安全性。
上述实施例中,所述第二解密模块704具体可用于:采用安全散列算法sha-256的反编码算法对所述第一加密数据进行解密,得到重组加密数据。
上述实施例中,所述拆分解密模块705具体可用于:根据高级加密标准aes的组合规则对所述重组加密数据进行文本拆分,得到解密数据。所述重组加密数据中可以但不限制为包括:公钥、用户认证令牌、待加密数据、消息id、时间戳、补位数据和随机数据。
关于数据加密装置和数据解密装置中各部分模块的具体实现,可参照对应方法实施例中相关内容的介绍说明,在此不再重复赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。