本发明专利技术公开了一种基于B/S架构的非对称加密算法的操作方法和系统,通过浏览器向服务器请求公钥;服务器创建一个非对称加密类,并使用静态内部类的方式实现单例模式,服务器通过所述非对称加密类调用公钥获取方法获取公钥并响应给浏览器端;浏览器端获取到公钥后,使用公钥将所述明文加密生成密文,服务器端获取到所述密文后,调用所述非对称加密类封装后的解密方法解密所述密文,生成明文。与现有方式相比,使用这种方式加密,无需过多开销,无需额外代码编写。解决了高频次请求公钥时的处理器资源过多占用或资源耗尽的情况。且内存中的私钥不允许拷贝,无需落地,降低了信息泄露的安全风险。全风险。全风险。
【技术实现步骤摘要】
一种基于B/S架构的非对称加密算法的操作方法和系统
[0001]本申请涉及基于B/S架构的非对称加密算法的操作
,特别是涉及一种基于B/S架构的非对称加密算法的操作方法和系统。
技术介绍
[0002]B/S架构系统,对于敏感数据(如:手机号,密码,身份证号等)从浏览器到服务端的传输,为了保障数据安全,通常采用非对称加密的方式。即一串字符的加密和解密使用一对不同的密钥,公钥加密,私钥解密。
[0003]现有B/S架构平台浏览器端对于非对称加密算法的操作方式,大多分为为以下三步:
[0004]在字符串需要加密前,从服务器端请求用来加密的公钥。
[0005]服务器端接收到请求后,立即使用对应加密算法,生成一对用来加密和解密的密钥对,将公钥和私钥以字典的形式存储在内存或磁盘里。并将公钥发送给客户端浏览器。
[0006]浏览器端接收到公钥后,用公钥加密完成后。将密文和公钥一同回传给服务器端。服务器端接收到密文和公钥后。通过公钥,在步骤2创建的字典中找到对应私钥并解密,获得数据明文,并删除当前使用过的公私钥。
[0007]这种解决方案存在以下几个问题:每次请求公钥时,都会立即生成一对公私钥,生成算法复杂,耗时稍长,且会额外占用处理器资源。每次生成的公私钥,都会以键值对的形式存储在内存或磁盘中以便随时获取私钥用来解密。这个步骤有两个隐患,首先私钥可以在系统中随意获取,甚至在磁盘上能找到对应的键值,对于信息安全是极为不利的;第二但如果客户端只是请求了公钥,并没有将加密结果回传就停止了操作关闭浏览器,则服务器的内存或磁盘中将会永久存储密钥对,造成存储空间浪费,甚至会导致OOM问题。若服务器端为了解决脏数据占用,还必须给每对密钥一个生命周期,即定时擦除。对于系统来讲,擦除密钥对的定时器也是额外的处理器和内存开销。且擦除的密钥对有可能客户端还在使用,只是提交的慢了。那此次提交会失败。
[0008]为了保障服务器端精准找到对应的私钥,客户端提交密文的同时,还要将公钥一起回传给服务器端,一定程度上加大了本次请求的网络IO。
[0009]现有的B/S架构系统对于各种加密算法实现的调用都存在一定的安全漏洞、计算资源和内存脏数据过多占用的问题。
技术实现思路
[0010]基于此,针对上述技术问题,提供一种基于B/S架构的非对称加密算法的操作方法和系统以解决现有的B/S架构系统对于各种加密算法实现的调用都存在一定的安全漏洞、计算资源和内存脏数据过多占用的问题。
[0011]第一方面,一种基于B/S架构的非对称加密算法的操作方法,所述方法包括:
[0012]在本地明文需要加密前,浏览器向服务器请求公钥;服务器创建一个非对称加密
类,并使用静态内部类的方式实现单例模式;其中,所述非对称加密类可以实现对多种非对称加密算法二次封装;
[0013]服务器通过所述非对称加密类调用公钥获取方法获取公钥并响应给浏览器端;
[0014]浏览器端获取到公钥后,使用公钥将所述明文加密生成密文,并将所述密文提交给服务器;
[0015]服务器端获取到所述密文后,调用所述非对称加密类封装后的解密方法解密所述密文,生成明文。
[0016]上述方案中,可选地,所述服务器创建一个非对称加密类,并使用静态内部类的方式实现单例模式,具体为:使用静态内部类的方式将非对称加密类封装为单例模式,实现对现有非对称加密的二次封装。
[0017]上述方案中,进一步可选地,所述使用静态内部类的方式将非对称加密类封装为单例模式,实现对现有非对称加密的二次封装,包括:
[0018]所述服务器每次启动或重启时,通过静态块实例化单例,生成一对公私钥,密钥存储在内存中,其中,仅公钥可以被请求获取,私钥放在私有变量中且不提供获取方法;服务器端每次启动或重启时,密钥对随之更新。
[0019]上述方案中,进一步可选地,所述非对称加密算法包括:RSA、Elgamal、背包算法、Rabin和D
‑
H、ECC。
[0020]上述方案中,进一步可选地,所述服务器通过所述非对称加密类调用公钥获取方法获取公钥并响应给浏览器端包括:
[0021]根据所述非对称加密类的构造调用密钥对获取方法,并将公钥和私钥以私有变量的形式保存在内存中;
[0022]在实例化非对称加密类对象时,同时得到密钥对,所述密钥对包括所述公钥。
[0023]上述方案中,进一步可选地,所述浏览器端获取到公钥后,使用公钥将所述明文加密生成密文,包括:
[0024]屏蔽所述公钥参数,输入参数只对外提供所述明文,并从所述非对称加密类封装后的加密方法内部调用原生加密方法时传入公钥和明文,通过封装后的加密方法返回加密后的密文。
[0025]上述方案中,进一步可选地,所述服务器端获取到所述密文后,调用所述非对称加密类封装后的解密方法解密所述密文,生成明文,包括:
[0026]屏蔽私钥参数,输入参数只传入密文,并从所述非对称加密类封装后的解密方法内部调用原生解密方法,传入私钥和密文,通过封装后的解密方法返回解密后的明文。
[0027]第二方面,一种基于B/S架构的非对称加密算法的操作系统,所述系统包括:
[0028]创建模块:用于在本地明文需要加密前,浏览器向服务器请求公钥;服务器创建一个非对称加密类,并使用静态内部类的方式实现单例模式;其中,所述非对称加密类可以实现对多种非对称加密算法二次封装;
[0029]公钥获取模块:用于服务器通过所述非对称加密类调用公钥获取方法获取公钥并响应给浏览器端;
[0030]加密模块:用于浏览器端获取到公钥后,使用公钥将所述明文加密生成密文,并将所述密文提交给服务器;
[0031]解密模块:用于服务器端获取到所述密文后,调用所述非对称加密类封装后的解密方法解密所述密文,生成明文。
[0032]第三方面,一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0033]在本地明文需要加密前,浏览器向服务器请求公钥;服务器创建一个非对称加密类,并使用静态内部类的方式实现单例模式;其中,所述非对称加密类可以实现对多种非对称加密算法二次封装;
[0034]服务器通过所述非对称加密类调用公钥获取方法获取公钥并响应给浏览器端;
[0035]浏览器端获取到公钥后,使用公钥将所述明文加密生成密文,并将所述密文提交给服务器;
[0036]服务器端获取到所述密文后,调用所述非对称加密类封装后的解密方法解密所述密文,生成明文。
[0037]第四方面,一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
[0038]在本地明文需要加密前,浏览器向服务器请求公钥;服务器创建一个非对称加密类,并使用静态内部类的方式实现单例模式;其中,所述非对称加密类可以实现对多种非对称加密算法二次封装;<本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于B/S架构的非对称加密算法的操作方法,其特征在于,所述方法包括:在本地明文需要加密前,浏览器向服务器请求公钥;服务器创建一个非对称加密类,并使用静态内部类的方式实现单例模式;其中,所述非对称加密类可以实现对多种非对称加密算法二次封装;服务器通过所述非对称加密类调用公钥获取方法获取公钥并响应给浏览器端;浏览器端获取到公钥后,使用公钥将所述明文加密生成密文,并将所述密文提交给服务器;服务器端获取到所述密文后,调用所述非对称加密类封装后的解密方法解密所述密文,生成明文。2.根据权利要求1所述的方法,其特征在于,所述服务器创建一个非对称加密类,并使用静态内部类的方式实现单例模式,具体为:使用静态内部类的方式将非对称加密类封装为单例模式,实现对现有非对称加密的二次封装。3.根据权利要求2所述的方法,其特征在于,所述使用静态内部类的方式将非对称加密类封装为单例模式,实现对现有非对称加密的二次封装,包括:使用静态内部类的方式将非对称加密类封装为单例模式,非对称加密类实现对非对称加密方法的二次封装,其中,封装后屏蔽了私钥获取方法、屏蔽了加密方法的公钥参数和解密方法的私钥参数;对外只提供封装后的加密、解密方法和公钥获取方法,公钥获取方法通过内存深拷贝实现,防止内存中的公钥被篡改。4.根据权利要求1所述的方法,其特征在于,所述多种非对称加密算法包括:RSA、Elgamal、背包算法、Rabin和D
‑
H、ECC。5.根据权利要求1所述的方法,其特征在于,所述服务器通过所述非对称加密类调用公钥获取方法获取公钥并响应给浏览器端包括:根据所述非对称加密类的构造调用密钥对获取方法,并将公钥和私钥以私有变量的形式保存在内存中;在实例化非...
【专利技术属性】
技术研发人员:朱玉冰,朱玉仓,
申请(专利权)人:北京众谊越泰科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。