如何向java程序添加许可功能?

Yat*_*oel 4 java security installer licensing

我在java中创建了一个应用程序.现在我想把它交给几个客户.我希望每个客户都必须购买一个串行密钥才能使用该软件.没有这个密钥,软件就不应该像市场上的其他软件那样运行.

我怎样才能做到这一点?

我知道我无法完全保护它.我只想要一个简单的串行密钥功能,这样非技术人员和新手程序员就很难破解安全性.

Rob*_*b H 8

有现成的图书馆.(例如,谷歌快速搜索出现了一种名为JLicense的产品.)但实现自己的机制并不困难,也更灵活.一种简单的方法是计算客户名称的SHA-1哈希加上一些硬编码的盐.将结果编码为字母数字字符,您就拥有了许可证密钥.现在,当有人去安装您的产品时,请询问他们的客户名称和许可证密钥.重新计算哈希并将其与用户授予您验证密钥的客户密钥进行比较.

这只是一个简单的例子.您可以执行各种操作,包括加密某些数据并将其存储在密钥中(例如,过期日期或未锁定功能的子集).您可以根据自己的喜好进行简单或复杂的操作.

但请记住,除非您使用某种分布式身份验证系统,否则您提出的任何解决方案都可以由具有足够技能和动力的人进行逆向工程.在Java中,这比使用C或C++等本机编译语言更容易实现.混淆代码可以提供帮助.