使用truelicense实现用于JAVA工程license机制(包括license生成和验证)
来源:互联网 发布:spaceman软件 编辑:程序博客网 时间:2024/05/22 11:48
开发的软件产品在交付使用的时候,往往会授权一段时间的试用期,这个时候license就派上用场了。不同于在代码中直接加上时间约束,需要重新授权的时候使用license可以避免修改源码,改动部署,授权方直接生成一个新的license发送给使用方替换掉原来的license文件即可。下面将讲述使用truelicense来实现license的生成和使用。Truelicense是一个开源的证书管理引擎,详细介绍见https://truelicense.java.net/
一、首先介绍下license授权机制的原理:
1、 生成密钥对,方法有很多。
2、 授权者保留私钥,使用私钥对包含授权信息(如使用截止日期,MAC地址等)的license进行数字签名。
3、 公钥给使用者(放在验证的代码中使用),用于验证license是否符合使用条件。
接下来是本例制作license的具体步骤:
二、第一步:使用keytool生成密钥对
以下命令在dos命令行执行,注意当前执行目录,最后生成的密钥对即在该目录下:
1、首先要用KeyTool工具来生成私匙库:(-alias别名 –validity 3650表示10年有效)
keytool -genkey -alias privatekey -keystoreprivateKeys.store -validity 3650
2、然后把私匙库内的公匙导出到一个文件当中:
keytool -export -alias privatekey -file certfile.cer -keystore privateKeys.store
3、然后再把这个证书文件导入到公匙库:
keytool -import -alias publiccert -file certfile.cer -keystore publicCerts.store
最后生成文件privateKeys.store、publicCerts.store拷贝出来备用。
三、第二步:生成证书(该部分代码由授权者独立保管执行)
1、 首先LicenseManagerHolder.java类:
2、 然后是主要生成license的代码CreateLicense.java:
3、 测试程序licenseCreateTest.java:
4、 生成时使用到的param.properties文件如下:
根据properties文件可以看出,这里只简单设置了使用时间的限制,当然可以自定义添加更多限制。该文件中表示授权者拥有私钥,并且知道生成密钥对的密码。并且设置license的内容。
四、第三步:验证证书(使用证书)(该部分代码结合需要授权的程序使用)
1、 首先LicenseManagerHolder.java类,同上。
2、 然后是主要验证license的代码VerifyLicense.java:
3、 测试程序licenseVerifyTest.java:
4、 验证时使用到的Properties文件如下:
根据该验证的properties可以看出,使用者只拥有公钥,没有私钥,并且也只知道访问密钥库的密码,而不能知道生成密钥对的密码。
原文地址http://blog.csdn.net/luckymelina/article/details/22870665
- 使用truelicense实现用于JAVA工程license机制(包括license生成和验证)
- 使用truelicense实现用于JAVA工程license机制(包括license生成和验证)
- 使用truelicense实现用于JAVA工程license机制(包括license生成和验证)
- 使用truelicense实现用于JAVA工程license机制(包括license生成和验证)
- 使用truelicense实现用于JAVA工程license机制
- 使用truelicense实现用于JAVA工程license机制
- 生成license用于验证证书
- 使用truelicense进行Java程序license控制 经过扩张可以验证license 开始结束日期,验证绑定给定mac地址
- 使用truelicense进行Java程序license控制 经过扩张可以验证license 开始结束日期,验证绑定给定mac地址
- 【License】java简单实现license认证-DES
- License
- License
- license
- license
- 使用Solution Manager生成系统license
- IBM Rational 产品许可证(License)管理使用和优化
- IBM Rational 产品许可证(License)管理使用和优化
- IBM Rational 产品许可证(License)管理使用和优化
- pip安装mysql-python报mysql_config: not found错
- OpenStack-M版(Mitaka)搭建基于(Centos7.2)+++十、Openstack对象存储服务(swift)下
- 蓝桥杯练习题之十六进制转十进制
- 在Android中使用MD5
- 基于zookeeper实现分布式锁
- 使用truelicense实现用于JAVA工程license机制(包括license生成和验证)
- 688. Knight Probability in Chessboard
- 正则表达式校验工具类
- ABAP Web dynpro ALV report table
- Android多次加载bitmap后,提示内存溢出。可以在onDestroy中释放内存资源
- 最简单的 Git 入门教程(一)
- springboot spring-security 集成微信登录
- 纯前端利用 js-xlsx 实现 Excel 文件导入导出功能示例
- LintCode 第466题 链表节点计数