小智..

7

我是Cryptolens软件许可平台背后的开发人员之一,并且从14岁起就开始从事许可系统的开发。在此答案中,我根据自己多年的经验提供了一些技巧。

解决此问题的最佳方法是设置一个许可证密钥服务器,应用程序的每个实例都将调用该服务器以验证许可证密钥。

许可证密钥服务器的好处

许可证密钥服务器的优点在于:

您始终可以立即更新或阻止许可证密钥。

每个许可证密钥可以锁定到一定数量的计算机上(这有助于防止用户在线发布许可证密钥供他人使用)。

注意事项

尽管在线验证许可证使您可以更好地控制应用程序的每个实例,但是并不总是存在Internet连接(尤其是针对大型企业时),因此我们需要另一种执行许可证密钥验证的方法。

解决方案是始终使用诸如RSA或ECC之类的公共密钥密码系统对服务器的许可证密钥响应进行签名(如果计划在嵌入式系统上运行,则可能会更好)。您的应用程序应仅具有公共密钥来验证许可证密钥响应。

因此,如果没有互联网连接,则可以改用以前的许可证密钥响应。确保在响应中同时存储日期和机器标识符,并检查日期是否太旧(例如,您允许用户最多30天处于离线状态,等等),并且许可证密钥响应属于正确的设备。

请注意,即使您已连接到Internet,也应始终检查许可证密钥响应证书,以确保自从它离开服务器以来未对其进行更改(即使您的API仍要这样做,也必须这样做)。许可证密钥服务器使用https)

保护秘密算法

大多数.NET应用程序都可以很容易地进行逆向工程(Microsoft提供了一个双汇编程序来获取IL代码,某些商业产品甚至可以检索C#等源代码)。当然,您始终可以混淆代码,但是它永远不是100%安全的。

在大多数情况下,任何软件许可解决方案的目的都是为了帮助诚实的人诚实(即,愿意付款的诚实用户不要在试用期满后忘记付款,等等)。

但是,您可能仍然有一些绝对不希望泄漏给公众的代码(例如,预测股价的算法等)。在这种情况下,唯一的方法是创建一个API端点,应用程序将在每次执行该方法时调用该端点。它需要Internet连接,但可以确保客户端计算机永远不会执行您的密码。

实作

如果您不想自己实现所有功能,建议您看一下本教程(Cryptolens的一部分)

服务器许可证密钥,如何生成和验证软件许可证密钥?相关推荐

  1. java md5 密钥_Java 生成16/32位 MD5密钥串

    注意!网上广为流传的MD5计算的版本,与标准MD5计算结果不同(原因可能是编码方式的不同).请注意甄别. 以下代码是经过测试的正确版本. public class MD5 { private stat ...

  2. 使用.NET REACTOR制作软件许可证

    使用.NET REACTOR制作软件许可证 原文:使用.NET REACTOR制作软件许可证 软件下载地址:http://www.eziriz.com/downloads.htm 做一个简单的许可证系 ...

  3. 软件许可证管理应该怎么做?

    随着企业的不断发展企业所拥有的软件数量也在逐渐增多,并且它们对企业的发展所起的作用也越来越大.可以说,今天的软件已经无可争议的成为了国内众多企业尤其是大企业的主要资产和投资的一部分.但是,由于没有在这 ...

  4. 开源软件 许可证密钥_自由和开源软件-1中的重要许可证

    开源软件 许可证密钥 It's important to take note that there are no good or bad licenses and that no license is ...

  5. GPG密钥的生成与使用

    转载:faner 先来看PGP和GPG程序的介绍. PGP PGP(英语:Pretty Good Privacy,中文含义"良好隐私密码法")是一套用于消息加密.验证的应用程序 P ...

  6. eap aka_使用API​​密钥(aka身份验证令牌)部署到Maven Central

    eap aka 如何在不使用未加密本地密码的情况下与Maven Central / Nexus通信(尤其是使用Gradle,但不仅限于此). 基本原理 不幸的是,Gradle(和许多其他构建工具)没有 ...

  7. ubuntu ssh密钥_生成SSH密钥以在Ubuntu中进行无密码登录

    ubuntu ssh密钥 SSH (Secure Shell) is a cryptographic network protocol which is used for establishing s ...

  8. 【苹果群发】苹果推iMessage接口筛选应用程序利用密钥箱生成CSR文书

    推荐内容IMESSGAE相关 作者推荐内容 iMessage苹果推软件 *** 点击即可查看作者要求内容信息 作者推荐内容 1.家庭推内容 *** 点击即可查看作者要求内容信息 作者推荐内容 2.相册 ...

  9. 服务器上的 Git - 生成 SSH 公钥

    https://blog.csdn.net/weixin_41490929/article/details/96476259 服务器上的 Git - 生成 SSH 公钥 生成 SSH 公钥 如前所述, ...

最新文章

  1. 关于学习Python的一点学习总结(22->相关的迭代操作)
  2. 开发一个微信小程序贵不贵,需要花费多少钱?
  3. ENAS pygraphviz 的替换之路
  4. linux gcc 与 glibc 的关系 glibc版本查看
  5. 【计算理论】计算复杂性 ( 无向图独立集问题 | 独立集问题是 NP 完全问题证明思路 | 证明独立集问题是 NP 完全问题 )
  6. 使用 Spring Boot 快速构建 Spring 框架应用
  7. Windows下卸载Oracle
  8. java仿qq登录 界面设计,Java Swing仿QQ登录界面效果
  9. java jpeg压缩解码_图片压缩(iOS)
  10. vue 实现数字滚动卡片
  11. C语言半框,如何挑选适合自己的镜框(镜片)?
  12. Citrix ADC中SNIP的三种配置场景
  13. 基于BALKANFamilyTreeJS插件的家谱可视化项目功能Demo
  14. 自定义函数求圆和圆柱体的表面积
  15. 三维点云到人体重建(七)
  16. Git submodule 采坑
  17. shell 获取运行脚本所在目录
  18. 9、学会查看GC日志
  19. 初步认识操作系统(Operator System)
  20. 超高精度北斗GPS时钟同步设备(时间频率)及其应用

热门文章

  1. DZNT论坛 3.6.711删除用户各种错解决方案
  2. 第001天:第一行Android代码
  3. Zeroc-Ice(ice-Touch)详解与配置应用
  4. Java码农进阶之路~面向对象之对象和类
  5. 普林斯顿大学颜宁教授宣布全职加盟深圳医学科学院
  6. 直接赋值和使用new赋值
  7. SSH整合过程中遇到的头秃问题
  8. JCL中utilities的使用
  9. PFC幅值接触需要注意与区分的两个command
  10. 福州发生持刀伤人事件:1死19伤 警方全力追捕嫌犯