一种实用的软件加密方法
作者:倪安胜 汤池 周华
来源:《电脑知识与技术》2012年第30期
摘要:通过提取硬盘、CPU 序列号及网卡MAC地址等硬件参数,产生机器码,对机器码进行加密变换生成注册码,提供给合法用户注册软件。实际应用结果表明,该方法简洁有效,能防止非法拷贝,可用于小型软件的保护。
关键词:软件加密;注册;PC
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2012)30-7206-02
随着计算机性能的不断提升,以及互联网应用的不断扩展,计算机软件业得到了迅猛发展。软件是一种特殊的产品,为了防止软件的非法复制、盗版,保护软件开发者的利益,就必须对软件进行加密保护[1,2]。理论上,没有破解不了的软件,仅靠技术对软件进行保护是不够的,最终还要靠人们知识产权意识和法制观念的进步。软件保护方式的设计应在一开始就作为软件开发的一部分来考虑,列入开发计划和开发成本中,并在保护强度、成本和易用性之间进行折衷考虑,选择合适的平衡点[3,4]。
本文提供了一种实用的软件加密方法,通过读取计算机硬盘序列号、CPU序列号及网卡MAC地址,以这些参数为基础产生机器码,用户把机器码通过电子邮件(E-mail)、电话或邮寄等方法告知软件开发者,由开发者通过注册机(软件)生成该软件的注册码回传给用户,供用户注册后使用软件。注册码与计算机的硬件参数息息相关,并通过特定文件进行保存,只能由进行注册的计算机使用,从而可有效防止软件的非法复制。
1 基本原理
硬盘序列号、CPU序列号及网卡MAC地址是生产厂家为区别出厂硬盘、CPU及网卡而设置的生产标识,不同的厂家硬盘序列号、CPU序列号及网卡MAC地址编码不同,但其标识是唯一且只读的,因此可使用这些参数作为计算机标识,在软件开发时作为加密标志,使软件运行时必须与计算机进行一一对应的认证,从而保证软件合法运行。
该方法工作原理流程如图1所示,软件运行时,首先读取计算机的硬盘序列号、CPU序列号及网卡MAC地址,根据这些参数合成一个编码,对该编码进行相关变换,生成计算机唯一的机器码告知用户,同时通过加密变换等手段(注册码生成模块)生成注册码,等待与用户输入的注册码进行比对。用户将机器码告知软件开发者。开发者通过加密变换等手段(注册机)进行处理,生成软件的注册码返回给用户,用户将注册码输入软件。软件将用户输入的注册码与自身计算得到的注册码进行比对,一旦结果正确即完成了软件注册,并将注册码保存到指定的注册文件中,以便软件今后运行时直接读取注册码,不必重复进行注册。