单机版软件的授权控制常见方法
通常,单机版的软件具有可复制性,复制出来的程序也能够安装、使用。作为软件的拥有者,在将程序交给客户以后,很难限制用户的安装使用,难以监控是否是自己授权过的用户,于是有如下几种办法,能够对单机版软件进行使用限制。
1、长期授权码
举例:微软的Windows操作系统。Adobe公司PhotoShop
厂商提供软件的同时,付费提供一个长字符串,使用软件的注册功能,将这个长字符串输入到进去即可进行使用授权。
优势:厂商能明确地知道自己卖了多少份,有必要的话还能记下来卖给了谁。
劣势:这一长串的字符,如果背后隐藏的规律被掌握了,软件就算破解了,厂商就没办法找人收费,软件就算是丢了。另外,如果是非联网环境,掌握一个号码,可以安装多台设备。
2、临时授权码
举例:无出名的软件使用该办法
厂商在安装软件时,提供临时授权码,限制使用次数或限制使用时长。
优势:厂商能保证超出次数(或时长)的软件被禁用。
劣势:生成临时授权码的小程序需要非常严格地保密,否则也相当于丢了。另外,如果是非联网环境,掌握一个号码,可以安装多台设备。
举例:各大银行的加密U盾,诸多财务软件都配套有加密狗。
厂商提供软件的同时,给自己的客户提供指定数量的加密狗,加密狗可以理解为【一个带有序列号的U盘】,软件在启动时读计算机是否有带授权的加密狗。
优势:使用硬件,非常大程度上增加了破解成本。
劣势:一个加密狗硬件成本约为200~300元,工程师处理这些授权时,也可能需要去客户办公场所收集加密狗,或者由客户拿着加密狗去找工程师进行新授权。业务流程略繁琐。
4、联机验证
举例:QQ、微信、FoxMail桌面版
用户在使用该软件时,必须是联网环境,程序一启动,即向服务器发送验证请求,通常用户输入用户名密码后,发送请求,服务器端请求通过,则告知本地可以启动。
优势:验证及时准确。需要在网络端开发一套能应用于该流程的系统。能在主控端进行用户帐号的有效性管理。
劣势:必须得有网。没有网的话系统不能正常启动。适合需要持续从服务器获取数据的应用,若仅是刚打开程序时用,有点奇怪。
5、CPU编号验证
举例:使用范围很小的软件,没有出名点的示例。
程序在启动时,利用0.01秒验证程序所在的计算机是不是列表中的计算机。如果是,则启动,如果不是,则不启动。
优势:有效地约束【仅授权计算机可用】
劣势:几台、几十台计算机使用该方法还可以,更多的计算机就维护不过来了。
以上提供的方法是可以在一款软件上同时使用的,例如:
方案一:5、CPU编号验证+2、临时授权码--------》能保证自己单位的人员使用,同时可以临时发放给关联公司人员
方案二:5、CPU编号验证+3、加密狗验证--------》双保险,必须在自己单位的电脑上,持加密狗的指定人员才能打开