Java给软件添加License

本文详细阐述了license机制如何通过限定软件使用权、防止非法复制和提供灵活性的许可方式,确保软件的安全性和合规性。包括公钥/私钥对生成、数据签名产生注册号及验证过程,强调了安全保护措施的重要性。

通过license机制来保护我们的安全,可以限定只有购买了license的用户在特定的机器上使用我们的软件。

license机制有以下的主要功能点:

  • 应用程序可以创建以及验证绑定给用户、系统等实体的license
  • 防止用户随意拷贝软件和license
  • licenses可以是永久性的或者临时性的(在某个特定时期内有效)
  • licenses的验证由JAVA Security API提供的数字签名机制来实现
  • license安装模块需要用特殊机制对其进行保护,以防被反编译轻易破解

Product.name=产品名称
Product.version=版本
License.type=license类型
License.expiry=license有效期
Server.macaddress=mac地址
signature=302d0215008b4ef2390e11d28f5ea7b86f71ba5168bfeaa6b402146c77706b985be68cc515c6079b31ad50e3f17552
 

 

其中最下面一串数据为根据上面几项基本信息签名产生的注册号

 

 

public Interface LecenseFactory{
    /** 
     *生成公钥、私钥对。公钥公开,注意保管好私钥(如果泄露,则有可能被hacker随意创建license
     */
    public static void generateKey() throws Exception;
    /** 用私钥对license进行数据签名*/
    public static synchronized void sign(License license) throws Exception;
    /**
     * 验证license是否合法。
     * 首先验证Mac地址是否有改变,有的话则非法。(防止用户自由拷贝软件)。
     * 然后根据公钥验证签名是否合法。
     */
    boolean validate(License license) throws Exception ;
}

 

 

第一步:生成公钥、私钥对。公钥公开,注意保管好私钥(如果泄露,则有可能被随意创建license)。
LicenseFactory.generateKey();
第二步:根据产品、版本、Mac地址、有效期等信息,签名产生注册号,并将该注册号复制到license中。
第三步:利用公钥对license进行合法性验证。可以在软件代码的重要模块中加入下面的验证,比如登录模块


 

 

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值