首页 > 其他分享 >软件离线许可(License)实现原理

软件离线许可(License)实现原理

时间:2022-11-29 10:26:00浏览次数:43  
标签:公钥 许可 License 代码 离线 校验 软件


我们经常使用各种开发软件,比如IntelliJ IDEA、Navicat、Visual Studio等,这些软件都有一个特点,就是要收费。一般是我们需要去购买一个许可,然后输入这个许可到软件里就能够使用软件。 于是有的小伙伴就开始好奇这个许可是怎么实现的,特别是在离线情况下它是怎么给软件授权,同时又能避免被破解的。   许可内容 一个许可应该包含以下基本内容:

  • 授权用户(用户编号、MAC地址、IP地址等)
  • 授权期限(开始结束时间、无限期等)
  • 授权功能(应用版本、应用功能)
基本原理 数字签名:一种防伪造技术,能够通过公钥验证的数据一定是私钥拥有者所签发的。因此除非私钥泄露(一般放在服务器),否则没有人能够伪造。 许可生成就是服务器使用非对称加密私钥对许可进行数字签名,客户端使用对应的公钥对许可进行数字签名校验,校验通过再校验许可的内容。     提高破解难度 应用带上时间戳 应用带上发布时间戳,如果License允许时间小于这个时间戳就算系统时间大于也不能使用(避免修改系统时间情况),这样就限制了过期License没办法使用新版本应用。 加大反编译难度 不要用Java等容易被反编译的代码去校验,特别是校验许可的代码(避免直接改为True),存放公钥字符串的代码(避免直接替换公钥)。 尽量把校验代码放到二进制代码里面去,同时可以对代码进行混淆,增加破解难度。   以上是软件License授权的标准做法。当然也有一些比较low的做法,大致思路如下: 1.NET Winform程序逐个去读取在线设备的CPU,MAC地址,更有甚者还有读取主板信息 2.在程序中再去验证上面读取到的信息是否是当前设备的。   此处,并没有任何鄙视Winform开发者的的意思,那些在自动化领域的专家很多都是用Winform做开发,只是觉得这种做法真的有点土了。   部分内容参考链接:https://juejin.cn/post/7140328102709690398

标签:公钥,许可,License,代码,离线,校验,软件
From: https://www.cnblogs.com/michael999/p/16934597.html

相关文章

  • docker 离线迁移镜像
    制作离线镜像包我们需要在有网的docker下制作离线镜像包,这里我们用hello-world镜像演示在有网的docker下拉取镜像dockerpullhello-world将镜像压缩成tar文件(......
  • ubuntu docker离线安装教程
    离线安装包下载docker离线安装时需要三个安装包:containerd.io包、docker-ce-cli包,docker-ce包,下载地址:https://download.docker.com/linux/ubuntu/dists/xenial/pool/stab......
  • centos7 docker离线安装教程
    离线安装包下载docker离线安装时需要两个安装包:selinux包、docker包,下载地址:https://download.docker.com/linux/centos/7/x86_64/stable/Packages/selinux包下载https:/......
  • Jenkins离线安装插件
    使用国内的清华大学源下载地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/搜索下载插件名称我以git插件为例进入之后选择版本下载hpi文件插件下载完......
  • 处理问题:windows server 2016由于没有远程桌面授权服务器可以提供许可证,远程会话被中
      windowsserver可以多用户同时登陆,默认最大远程登录数量为2,如果有更多人需要同时远程登录,则需要安装远程桌面授权服务,第一次安装后,免费期为120天,超过则无法正常远程......
  • 软件资产许可管理优化的研究与应用
    随着我国信息化产业的不断发展,各行各业的企业所拥有的软件数量也逐步增加,这些软件的合理运行,为企业的长期稳定发展提供了相当大的助力。但是,因为没有对软件资产管理提起一定......
  • PS2023神经元滤镜离线安装教程,解决PS神经滤镜灰色不可用!
    PS2023神经元滤镜离线安装包,这是一款专门在Photoshop上使用的多功能滤镜工具,英文名为:NeuralFilters,它为用户提供了一个完整的滤镜库,用户可以通过这里各种各样的滤镜制作出......
  • Cent 制作离线rpm包(包括所有依赖项)
    首先yum上能找到这个包,它是以本机现有环境为基础生成的依赖包。如果已经安装完成,这个就做不成了,所以最好用虚拟机先试一下,确保可以安装成功,再回滚,再制作。#安装yum-util......
  • Python基于pip实现离线打包
    转载自 https://www.zhangshengrong.com/p/x7XRM7byNz/新公司是内网环境,无法使用pip安装第三方资源库,在网上搜下,可以直接使用pip打包本机所安装的第三方资源库,打包成whl......
  • 第五十九章 CSP的常见问题 - 会话和许可证,为什么我要经常登录?
    第五十九章CSP的常见问题-会话和许可证,为什么我要经常登录?当我尝试加载CSP页面时,出现以下错误:错误#5924:出现错误,无法显示指定的错误页面-请通知网站管理员。这是什么......