rsa加密概念和license总结

前几天公司的项目需要用到rsa做个license,简单总结一下

java 的加密技术有好多,看了几种,都差不多,看了一下des 和 rsa加密和md5

据说rsa加密在未来的10年内是没办法解密的(据说,呵呵)。

首先:rsa 加密分publicKey(公钥)和privateKey(私钥),privateKey用来加密,publicKey用来解密和签名验证。

publicKey可以公开,privateKey自己保存好。

在做的时候有两种方式:

一种是把两个key生成到一个文件里,后缀名可以随便取,看不到里面的内容,除非用自己写的方法取出

例如RsaKey.data

一种是直接生成Key对象,可以保存到一个字符转里,不管是private或者public  Key都有两个值,model和expend(不知道记得对不对),在第一种方式的文件中保存的也是这个,只不过生成文件后可能进行编码了。

 

 

数字签名也就是把加密后的对象通过解密后跟原来的对象做对比看对不对,如果对的话就返回true,否则返回false。

 

rsa加密自己理解不深,不过在没有复杂算法的情况下应该够用了。

 

 

下面说下license

 

license用来限制公司的项目滥用,防止copy。

在项目中建立一个license.xml 里面可以有用户名,项目使用到期时间,和mac地址(很重要,用户服务器的mac地址)和把用户名和到期时间和mac加起来生成的字符串通过rsa加密后的字符串, 还有一些其他的参数可以自己定,在项目启动时用公钥进行验证签名,看对不对,如果对的话就继续,不对可以在项目中生成一个全局变量限制用户权限,然后再验证取出客户服务器的mac地址进行对比,如果不相同的话就说明项目是从别的地方copy来的或者是用户提供的mac不对,通过的话再验证到期时间或者其他的一些参数。

 

 

再说下mac地址的得到,在jdk1.6中sun已经提供了方法得到及其的mac地址,在jdk1.5和jdk1.4中还没有提供方法,只能通过文件ipconfig /all命令得到,网上有一个前辈写了一个,很实用。

 

 

由于理解的不深,只能简单写一下,有错误的地方忘纠正和谅解,可以共同进步,呵呵

 

 

 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值