用于软件加密的计算机系统及方法

文档序号:6472424阅读:386来源:国知局
专利名称:用于软件加密的计算机系统及方法
技术领域
本发明涉及一种用于软件加密的计算机系统及方法。
背景技术
信息产业的不断创新和广泛应用,特别是计算机网络与通信技术的快速发展,使人类冲 破空间与时间的限制,信息和经济全球一体化趋势日益明显。软件产业从20世纪60年代初开 始兴起,现在已经成为信息产业的核心。对于软件产业来说,盗版一直是一个沉重的话题, 盗版猖獗,使正版用户减少,软件开发者得不到相应的经济回报,没有继续开发下去的基础 和动力,给软件开发者造成经济损失。 一般而言,软件的保护是对软件进行加密。当前流行 的一些软件加密保护技术有序列号保护、时间限制、Key File保护、加密狗及将软件与硬
件进行关联等方式。这些流行的软件加密方式很大程度上防止了软件的盗版,但是这些加密 方式过多的对加密模块中的算法进行复杂的设计且对加密模块进行简单的隐藏,如此一来, 所产生的加密模块容量大,且在软件启动的时候会比较缓慢。

发明内容
鉴于以上内容,有必要提供一种用于软件加密的计算机系统,其可以利用计算机的硬件 信息生成密钥,并将所生成的密钥转换成一个二维条码,由于二维条码容量低、占用空间小 的特点,使软件在获得加密的同时,减少了空间容量,且二维条码本身具有加密功能,也进 一步提高了解密的难度,减少了盗版。
此外,还有必要提供一种用于软件加密方法,其可以利用计算机的硬件信息生成密钥, 并将所生成的密钥转换成一个二维条码,由于二维条码容量低、占用空间小的特点,使软件 在获得加密的同时,减少了空间容量,且二维条码本身具有加密功能,也进一步提高了解密 的难度,减少了盗版。
一种用于软件加密的计算机系统,该计算机系统包括读取模块,用于在软件进行安装 时,获取主机的硬件信息,并将所述硬件信息换算成二进制码,该二进制码称为第一二进制 码;生成模块,用于根据所述硬件信息及通过加密算法生成一个密钥,并将该密钥换算成二 进制码,该二进制码称为第二二进制码,加密算法在运算时对应的二进制码称为第三二进制 码,及根据所述第一二进制码、第二二进制码及第三二进制码生成一个新的二进制码,该二 进制码称为第四二进制码;转换模块,用于将所述第四二进制码转换成一个二维条码;保存模块,用于将二维条码保存到安装该软件的目录下,实现对该软件加密。
一种软件加密方法,该方法包括如下步骤在软件进行安装时,获取主机的硬件信息, 并将所述硬件信息换算成二进制码,该二进制码称为第一二进制码;根据所述硬件信息及通
过加密算法生成一个密钥,并将该密钥换算成二进制码,该二进制码称为第二二进制码,加
密算法在运算时对应的二进制码称为第三二进制码;根据所述第一二进制码、第二二进制码 及第三二进制码生成一个新的二进制码,该二进制码称为第四二进制码;将所述第四二进制 码转换成一个二维条码;将所述二维条码保存到安装该软件的目录下,实现对该软件加密。
相较于现有技术,所述的软件加密的计算机系统及方法,其可以利用计算机的硬件信息 生成密钥,并将所生成的密钥转换成一个二维条码,由于二维条码容量低、占用空间小的特 点,使软件在获得加密的同时,减少了空间容量,且二维条码本身具有加密功能,也进一步 提高了解密的难度,减少了盗版。


图l是本发明用于软件加密的计算机系统的较佳实施例的硬件框架图。
图2是本发明图1中主机的较佳实施例的功能模块图。
图3是本发明软件加密方法的较佳实施例的流程图。
具体实施例方式
如图1所示,是本发明一种用于软件加密的计算机系统较佳实施例的硬件架构图。该计 算机系统主要包括显示器l、主机2、键盘3及鼠标4。所述主机2连接有显示器1、键盘3及鼠 标4,用作具体操作时的输入、输出设备。
如图2所示,是本发明图l中主机的较佳实施例的功能模块图。该主机包括获取模块210 、生成模块211、转换模块212及保存模块213。
所述读取模块210用于在软件进行安装时,获取主机2的硬件信息,并将所述硬件信息换 算成二进制码,该二进制码称为第一二进制码。在本较佳实施例中,所述主机2的硬件包括 主机2的MAC (Media Access Control:介质访问控制)地址、主机2的IP地址。具体而言, 由于操作系统中有包含硬件信息的模块,获取模块210通过读取操作系统中包含硬件信息模 块中的数据就可以得到所述主机2的MAC地址及主机2的IP地址。由于所述MAC地址、IP地址都 是字符串,根据二进制的运算法则可以将所述MAC地址、IP地址换算成对应的二进制码。
所述生成模块211用于根据所述硬件信息及通过加密算法生成一个密钥,并将该密钥换 算成二进制码,该二进制码称为第二二进制码,加密算法在运算时对应的二进制码称为第三 二进制码。所述密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的数据,通过加密算法得到,在本较佳实施例中,所述的加密算法是指哈希(Hash)算法, 在其他实施例中,也可以利用其它类型的加密算法(如,数据加密标准算法Data Encryption Standard)得到密钥。产生密钥的方式是通过Hash算法将所述硬件信息转换成 一个Hash值,该Hash值就是密钥,通常,为了提高安全性能,提高破解的难度,用户可以对 所述Hash值按照一定规则再次进行转换,得到一个新的Hash值,则该新的Hash值就是密钥。 具体而言,假设通过Hash算法将所述硬件信息转换成的Hash值为1234,若用户没有对该 Hash进行转换,则该Hash值1234即为密钥,若用户设定一个规则(如把该Hash值转变成 4321)再次进行转换,则转变后的Hash值4321即为密钥。通常,加密算法在运行时,最终都 会转换成二进制机器语言,通过转换后的二进制机器语言来执行该算法。所述的加密算法在 运算时对应的二进制码是指转换后的二进制机器语言。
所述生成模块211还用于根据所述第一二进制码、第二二进制码及第三二进制码生成一 个新的二进制码,该二进制码称为第四二进制码。所述第四二进制码的生成方式是将第一二 进制码、第二二进制码及第三二进制码进行组合,得到一个二进制码。组合的方式可以是将 三个二进制码按照顺序连接,具体而言,假设第一二进制码为0000,第二二进制码为llll, 第三二进制码为1001,则组合后生成的第四二进制码为000011111001。
所述转换模块212用于将所述第四二进制码转换成一个二维条码。所述二维条码( 2-dimensional bar code) 是用一种特定的几何图形按一定规律在平面(二维方向上)分 布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基 础的"0" 、 "1"比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信 息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理,每种码制有其特定的 字符集,每个字符占有一定的宽度,具有一定的校验功能等。二维条码还具有对不同行的信 息自动识别功能、及处理图形旋转变化等特点。二维条码能够在横向和纵向两个方位同时表 达信息,因此能在很小的面积内表达大量的信息。
所述保存模块213用于将所述二维条码保存到安装该软件的目录下,实现对该软件加密
经过加密后的软件,用户在运行该软件的时候,首先读取主机2上的硬件信息的二进制 码,之后在该软件的安装目录下找到二维条码,对该二维条码进行解密得到上述第四二进制 码,由于第四二进制码中包含第一二进制码,根据组合第四二进制码的规则,从中解密出第 一二进制码,将解密出来的第一二进制码与所述读取的主机2中硬件信息的二进制码进行比 对,若不一致,则该软件在运行一段时间后,自动退出,若一致,则该软件继续运行。用户在对二维条码的解密过程中,若解密错误,S卩从二维条码中解密出来的第一二进制码与主 机2上的硬件信息的二进制码不一致,则会返回错误的数据值以供该软件继续执行一段时间 后再报错误信息,之后自动退出,这样使破解者无法找到软件破解入口 。
如图3所示,是本发明软件加密方法的较佳实施例的流程图。首先,步骤SIO,在软件进 行安装时,获取模块210获取主机2的硬件信息并将所述硬件信息换算成二进制码,该二进制 码称为第一二进制码。在本较佳实施例中,所述主机2的硬件包括主机2的MAC (Media Access Control:介质访问控制)地址、主机2的IP地址。具体而言,由于操作系统中有包 含硬件信息的模块,获取模块210通过读取操作系统中包含硬件信息模块中的数据就可以得 到所述主机2的MAC地址及主机2的IP地址。由于所述MAC地址、IP地址都是字符串,根据二进 制的运算法则可以将所述MAC地址、IP地址换算成对应的二进制码。
步骤Sll,生成模块211根据所述硬件信息及通过加密算法生成一个密钥,并将该密钥换 算成二进制码,该二进制码称为第二二进制码,加密算法在运算时对应的二进制码称为第三 二进制码。所述密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入 的数据,通过加密算法得到,在本较佳实施例中,所述的加密算法是指哈希(Hash)算法, 在其他实施例中,也可以利用其它类型的加密算法(如,数据加密标准算法Data Encryption Standard)得到密钥。产生密钥的方式是通过Hash算法将所述硬件信息转换成 一个Hash值,该Hash值就是密钥,通常,为了提高安全性能,提高破解的难度,用户可以对 所述Hash值按照一定规则再次进行转换,得到一个新的Hash值,则该新的Hash值就是密钥。 具体而言,假设通过Hash算法将所述硬件信息转换成的Hash值为1234,若用户没有对该 Hash进行转换,则该Hash值1234即为密钥,若用户设定一个规则(如把该Hash值转变成 4321)再次进行转换,则转变后的Hash值4321即为密钥。通常,加密算法在运行时,最终都 会转换成二进制机器语言,通过转换后的二进制机器语言来执行该算法。所述的加密算法在 运算时对应的二进制码是指转换后的二进制机器语言。
步骤S12,生成模块211根据所述第一二进制码、第二二进制码及第三二进制码生成一个 新的二进制码,该二进制码称为第四二进制码。所述第四二进制码的生成方式是将第一二进 制码、第二二进制码及第三二进制码进行组合,得到一个二进制码。具体而言,在本较佳实 施例中,假设第一二进制码为0101,第二二进制码为Olll,第三二进制码为llll,则组合后 生成的第四二进制码为010101111111。
步骤S13,转换模块212将所述第四二进制码转换成一个二维条码。所述二维条码( 2-dimensional bar code) 是用一种特定的几何图形按一定规律在平面(二维方向上)分
7布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基 础的"0" 、 "1"比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信 息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理,每种码制有其特定的 字符集,每个字符占有一定的宽度,具有一定的校验功能等。二维条码还具有对不同行的信 息自动识别功能、及处理图形旋转变化等特点。二维条码能够在横向和纵向两个方位同时表 达信息,因此能在很小的面积内表达大量的信息。二维条码的类型包括堆叠式二维条码、矩 阵式二维条码,在本较佳实施例中,所述二维条码是矩阵式二维条码。
步骤S14,保存模块213将所述二维条码保存到安装该软件的目录下,实现对该软件加密
经过加密后的软件,用户在运行该软件的时候,首先读取主机2上的硬件信息的二进制 码,之后在该软件的安装目录下找到二维条码,对该二维条码进行解密得到上述第四二进制 码,由于第四二进制码中包含第一二进制码,根据组合第四二进制码的规则,从中解密出第 一二进制码,将解密出来的第一二进制码与所述读取的主机2中硬件信息的二进制码进行比 对,若不一致,则该软件在运行一段时间后,自动退出,若一致,则该软件继续运行。用户 在对二维条码的解密过程中,若解密错误,S卩从二维条码中解密出来的第一二进制码与主 机2上的硬件信息的二进制码不一致,则会返回错误的数据值以供该软件继续执行一段时间 后再报错误信息,之后自动退出,这样使破解者无法找到软件破解入口 。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照以上 较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技 术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
权利要求
1.一种用于软件加密的计算机系统,其特征在于,该计算机系统包括读取模块,用于在软件进行安装时,获取主机的硬件信息,并将所述硬件信息换算成二进制码,该二进制码称为第一二进制码;生成模块,用于根据所述硬件信息及通过加密算法生成一个密钥,并将该密钥换算成二进制码,该二进制码称为第二二进制码,加密算法在运算时对应的二进制码称为第三二进制码,及根据所述第一二进制码、第二二进制码及第三二进制码生成一个新的二进制码,该二进制码称为第四二进制码;转换模块,用于将所述第四二进制码转换成一个二维条码;及保存模块,用于将二维条码保存到安装该软件的目录下,实现对该软件加密。
2.如权利要求l所述的计算机系统,其特征在于,所述主机的硬件信息是指主机的MAC地址及IP地址。
3.如权利要求l所述的计算机系统,其特征在于,所述加密算法为Hash算法。
4.如权利要求l所述的计算机系统,其特征在于,所述二维条码是矩阵式二维条码。
5.一种软件加密方法,其特征在于,该方法包括如下步骤在软件进行安装时,获取主机的硬件信息,并将所述硬件信息换算成二进制码,该二进制码称为第一二进制码;根据所述硬件信息及通过加密算法生成一个密钥,并将该密钥换算成二进制码,该二进制码称为第二二进制码,加密算法在运算时对应的二进制码称为第三二进制码;根据所述第一二进制码、第二二进制码及第三二进制码生成一个新的二进制码,该二进制码称为第四二进制码;将所述第四二进制码转换成一个二维条码;及将所述二维条码保存到安装该软件的目录下,实现对该软件加密。
6 如权利要求5所述的软件加密方法,其特征在于,所述主机的硬件信息是指主机的MAC地址及IP地址。
7 如权利要求5所述的软件加密方法,其特征在于,所述加密算法为Hash算法。
8 如权利要求5所述的软件加密方法,其特征在于,所述二维条码是矩阵式二维条码。
全文摘要
一种软件加密的方法,该方法包括如下步骤在软件进行安装时,获取主机的硬件信息,并将所述硬件信息换算成二进制码,该二进制码称为第一二进制码;根据所述硬件信息及通过加密算法生成一个密钥,并将该密钥换算成二进制码,该二进制码称为第二二进制码,加密算法在运算时对应的二进制码称为第三二进制码;根据所述第一二进制码、第二二进制码及第三二进制码生成一个新的二进制码,该二进制码称为第四二进制码;将所述第四二进制码转换成一个二维条码;将所述二维条码保存到安装该软件的目录下,实现对该软件加密。
文档编号G06F21/00GK101604362SQ20081030214
公开日2009年12月16日 申请日期2008年6月13日 优先权日2008年6月13日
发明者常春明 申请人:鸿富锦精密工业(深圳)有限公司;鸿海精密工业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1