本发明公开一种方法,涉及身份验证,具体地说是一种基于非对称加密的java应用授权方法。
背景技术:
1、开发了软件应用并对外提供后,往往需要对分发出去的软件进行限制,比如指定使用者,限制软件使用有效时间,声明版权信息、开发主体等。很多场景是离线使用,无法使用网络进行认证。
技术实现思路
1、本发明针对现有技术的问题,提供一种基于非对称加密的java应用授权方法,可以实现对java应用的授权管理。采用这个方案可以保护软件开发者的知识产权,防止软件被盗版和非法传播。同时也可以保障用户的合法权益,确保用户在合法范围内使用软件。
2、本发明提出的具体方案是:
3、本发明提供一种基于非对称加密的java应用授权方法,包括:
4、步骤1:使用jdk自带的keytool利用dsa算法生成密钥对与证书,其中通过dsa算法选用sha-1或者sha-2算法生成密钥对,dsa算法中参数p:l bits长的素数,l是64的倍数,512≤l≤1024;参数q:p-1的160bits的素因子;参数g:g=h^((p-1)/q)mod p,h满足h<p-1,h^((p-1)/q)mod p>1;x:x<q,x为私钥;y:y=g^x mod p,y为公钥;h(x):one-way hash函数,
5、并定义签名及验证协议:产生随机数k,0<k<q;r=(g^k mod p)mod q,r>0;s=(k^(-1)(h(m)+xr))mod q,s>0;签名结果是(m,r,s);验证时计算w=s^(-1)mod q,u1=(h(m)w)mod q,u2=(r w)mod q,v=((g^u1*y^u2)mod p)mod q,若v=r,则认为签名有效;
6、步骤2:通过license服务端根据设置的license的参数生成license,
7、步骤3:将公钥与证书导入用户应用服务器,安装license,验证证书是否有效,有效则获得应用授权。
8、进一步,所述的一种基于非对称加密的java应用授权方法中步骤2中设置的license的参数,包括:将指定加密用到的私钥,license的到期时间,签名主题,生成的license存放的路径,以及自定义参数作为license的参数。
9、进一步,所述的一种基于非对称加密的java应用授权方法中步骤2中自定义参数包括服务器的硬件信息、环境的配置信息和对用户保密的参数,硬件信息包括如服务器的ip地址、mac地址、cpu序列号和主板序列号,配置信息包括环境的域名。
10、进一步,所述的一种基于非对称加密的java应用授权方法中步骤3中将公钥与证书导入用户应用服务器,验证过程中的核心代码引入truelicense.jar,验证过程验证license的默认参数,通过重写verify方法对添加的自定义参数进行验证。
11、本发明还提供一种基于非对称加密的java应用授权装置,包括密钥管理模块、激活码生成模块和验证模块,
12、密钥管理模块使用jdk自带的keytool利用dsa算法生成密钥对与证书,其中通过dsa算法选用sha-1或者sha-2算法生成密钥对,dsa算法中参数p:l bits长的素数,l是64的倍数,512≤l≤1024;参数q:p-1的160bits的素因子;参数g:g=h^((p-1)/q)mod p,h满足h<p-1,h^((p-1)/q)mod p>1;x:x<q,x为私钥;y:y=g^x mod p,y为公钥;h(x):one-wayhash函数,
13、并定义签名及验证协议:产生随机数k,0<k<q;r=(g^k mod p)mod q,r>0;s=(k^(-1)(h(m)+xr))mod q,s>0;签名结果是(m,r,s);验证时计算w=s^(-1)mod q,u1=(h(m)w)mod q,u2=(r w)mod q,v=((g^u1*y^u2)mod p)mod q,若v=r,则认为签名有效;
14、激活码生成模块通过license服务端根据设置的license的参数生成license,
15、验证模块将公钥与证书导入用户应用服务器,安装license,验证证书是否有效,有效则获得应用授权。
16、进一步,所述的一种基于非对称加密的java应用授权装置中激活码生成模块设置的license的参数,包括:将指定加密用到的私钥,license的到期时间,签名主题,生成的license存放的路径,以及自定义参数作为license的参数。
17、进一步,所述的一种基于非对称加密的java应用授权装置中激活码生成模块自定义参数包括服务器的硬件信息、环境的配置信息和对用户保密的参数,硬件信息包括如服务器的ip地址、mac地址、cpu序列号和主板序列号,配置信息包括环境的域名。
18、进一步,所述的一种基于非对称加密的java应用授权装置中验证模块将公钥与证书导入用户应用服务器,验证过程中的核心代码引入truelicense.jar,验证过程验证license的默认参数,通过重写verify方法对添加的自定义参数进行验证。
19、本发明的有益之处是:
20、本发明提供一种基于非对称加密的java应用授权方法,与现有常用技术相比,基于非对称加密的java应用授权方法,由于是使用dsa对license签名证书进行非对称加解密,相对于对称加密,有更高的安全性,而相对于常用的非对称加密rsa算法,又有更好的性能。代码中使用truelicense进行加解密操作的封装,具有较强的可扩展性,能根据实际需求灵活调整验证的参数项。
1.一种基于非对称加密的java应用授权方法,其特征是包括:
2.根据权利要求1所述的一种基于非对称加密的java应用授权方法,其特征是步骤2中设置的license的参数,包括:将指定加密用到的私钥,license的到期时间,签名主题,生成的license存放的路径,以及自定义参数作为license的参数。
3.根据权利要求1所述的一种基于非对称加密的java应用授权方法,其特征是步骤2中自定义参数包括服务器的硬件信息、环境的配置信息和对用户保密的参数,硬件信息包括如服务器的ip地址、mac地址、cpu序列号和主板序列号,配置信息包括环境的域名。
4.根据权利要求1所述的一种基于非对称加密的java应用授权方法,其特征是步骤3中将公钥与证书导入用户应用服务器,验证过程中的核心代码引入truelicense.jar,验证过程验证license的默认参数,通过重写verify方法对添加的自定义参数进行验证。
5.一种基于非对称加密的java应用授权装置,其特征是包括密钥管理模块、激活码生成模块和验证模块,
6.根据权利要求5所述的一种基于非对称加密的java应用授权装置,其特征是激活码生成模块设置的license的参数,包括:将指定加密用到的私钥,license的到期时间,签名主题,生成的license存放的路径,以及自定义参数作为license的参数。
7.根据权利要求5所述的一种基于非对称加密的java应用授权装置,其特征是激活码生成模块自定义参数包括服务器的硬件信息、环境的配置信息和对用户保密的参数,硬件信息包括如服务器的ip地址、mac地址、cpu序列号和主板序列号,配置信息包括环境的域名。
8.根据权利要求5所述的一种基于非对称加密的java应用授权装置,其特征是验证模块将公钥与证书导入用户应用服务器,验证过程中的核心代码引入truelicense.jar,验证过程验证license的默认参数,通过重写verify方法对添加的自定义参数进行验证。
