一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于磁盘序列号的软件保护方法与流程

2022-02-24 13:43:28 来源:中国专利 TAG:


1.本发明涉及计算机软件开发应用领域,本发明提出并设计的软件使用权限保护方法,对外没有特殊的软硬件或接口依赖、对内不会对软件的运行造成任何资源消耗。实现简单、可扩展性强,对于软件后期运行维护也有重要的帮助意义,同时也可用于嵌入式软件开发、硬件设备的使用权限管理中。


背景技术:

2.现今计算机软件技术发展日新月异,软件规模和使用要求也在不断发生着变化。在一些项目中,因为用户需要,所有的软件均需以独立可执行程序的方式交付用户,且需要集中部署在一两台电脑上,这样就造成了一些其它厂家也能够通过操作自己的软件,接触到非本单位的软件。用户由于人力、技术等方面原因,无法保证各个厂家软件不会被其它厂家人员以软件升级、软件修复等名义,通过非正常途径获取。在缺乏监管的情况下甚至出现了未经原软件原创单位或者用户许可,其它厂家售后人员擅自拷贝非本单位软件进行借鉴甚至抄袭。在其它项目竞标中,多个厂家出现了与原创单位软件功能、布局相似的产品。因此,软件原创单位需要一种既不会增加用户软件使用难度、满足用户日常需求,又能够防止软件轻易被其它厂家人员获取的方法。
3.改变软件架构、对软件服务进行绑定的方法虽然可以解决软件被轻易拷贝的漏洞,但造成软件后期安装麻烦、用户使用的不便。增加软件口令、密码短期内解决了问题,但时间久了,还是会被其他厂家通过各种方法获得口令密码,均未取得理想的效果。
4.硬盘是电脑运行必备的电子设备,而磁盘序列号对硬盘而言如同个人的身份证编号一样,具有唯一性不能修改。


技术实现要素:

5.为了克服现有技术的不足,本发明提供一种基于磁盘序列号的软件保护方法。
6.本发明解决其技术问题所采用的技术方案的具体步骤为:
7.步骤1:软件运行后,首先获得软件当前运行的磁盘序列号,软件获得磁盘序列号后,将该序列号命名为serialnumber,长度为2n,serialnumber为十六进制;
8.步骤2:将serialnumber进行与运算,即依次从左向右将serialnumber中每两个数字作为一组取出,将得到n组数字,并转换为十进制,将n组数字分别与n个计算码相乘;
9.步骤3:取n组数字与计算码乘积的前五位,不够五位的取0补齐,得到注册码key1;key1与本地的配置文件中自带的注册码key2进行比较,如果key1与key2相同,则软件通过验证,正常使用;如果key1与key2不相同,则软件将提示将需要提供正确的注册码。
10.所述计算码任意选取。
11.本发明有益效果在于不需要在软件安装过程中进行额外的配置环境操作,只需要在软件运行目录下放置一个配置文件即可。目前市面上主流的软件使用权限算法都是针对软件本身进行加密,一套正版软件只能安装一次,用户需要根据需求去购买多个正版软件,
用户很难确保多套软件版本不会有偏差,尤其在一些大规模军工系统软件联试过程中,总体单位对软件版本的管控非常严格,如果参与联试的厂家无法提供有效证据证明这同一个软件的多个版本状态一致,软件将不会被允许安装。本发明与其他软件加密算法的不同之处在于,本发明不是面向软件本身进行使用权限限制,而是对软件运行的电脑进行使用权限限制,只要开发人员提供注册码,用户可以将同一套软件安装在多个电脑上,几乎于复制粘贴,确保所有使用的软件版本绝对不会有差异,这样既可以对软件使用权限进行管控,又可以满足用户部署多套软件的需求,特别适合对软件版本要求严格的大型军工项目系统软件联试中。
附图说明
12.图1是本发明的软件运行流程图。
具体实施方式
13.下面结合附图和实施例对本发明进一步说明。
14.考虑到将软件权限识别与磁盘序列号进行绑定,本发明对磁盘序列号进行计算,将计算结果进行比对,并检测软件权限识别。在软件开发过程中增加该算法,通过对当前运行电脑的磁盘序列号进行计算,将软件得出的结果与本地配置文件的结果进行比对,对比通过则可以继续使用该软件,若对比不通过,则需要联系软件原创单位获取注册码。
15.采用本发明的方法后,软件原创单位安装的软件与用户的电脑磁盘进行了唯一性绑定,软件安装到其它电脑后,因为变换了磁盘,缺少原创单位提供的注册码,软件所有功能将被挂起,无法正常使用。在很大程度上缓解了软件可以被轻易拷贝的问题,
16.步骤1:软件运行后,首先获得软件当前运行的磁盘序列号,例如bc6349e0。
17.软件获得磁盘序列号后,将该序列号命名为serialnumber,根据该序列号进行以下计算。
18.步骤2:将serialnumber进行与运算,每两个数字作为一组取出,得到的数字188、99、73、224,将得到的四组数字,分别与数字0x3a2、0x2b5、0x232、0x375相乘,这些数字软件开发中均可以随便选择。
19.步骤3:取四组数字与参数的乘积的前五位,不够的取0补齐,以此得出17484、68607、41026、19824;与本地的配置文件中的注册码进行比较,如果结果相同,则软件通过验证正常使用;如果结果不相同,则软件将提示将磁盘序列号bc6349e0发回厂家,请求其提供正确的注册码;正确的注册码即为17484-68607-41026-19824。
20.步骤4:由于通过磁盘序列号得到注册码的方法只掌握在软件原创单位手中,所以其他人员无从知晓配置文件中注册码信息如何填写。
21.这种基于磁盘序列号识别方法,没有特殊依赖的软硬设备,与外部没有任何接口。在开发过程中只需要把通过磁盘序列号计算注册码的部分封装成动态库的形式供软件调用,与软件功能完全剥离,软件不需要加载所有的函数程序,只需要在运行时针对性的调用函数地址即可,节省内存,可维护性强。同时加密算法使用的简单的数字取位相乘,方便后期功能扩展。其它项目也可以根据实际情况对加密算法进行完备性升级。也为嵌入式开发、硬件设备的使用提供一定的保密思路。


技术特征:
1.一种基于磁盘序列号的软件保护方法,其特征在于包括下述步骤:步骤1:软件运行后,首先获得软件当前运行的磁盘序列号,软件获得磁盘序列号后,将该序列号命名为serialnumber,长度为2n,serialnumber为十六进制;步骤2:将serialnumber进行与运算,即依次从左向右将serialnumber中每两个数字作为一组取出,将得到n组数字,并转换为十进制,将n组数字分别与n个计算码相乘;步骤3:取n组数字与计算码乘积的前五位,不够五位的取0补齐,得到注册码key1;key1与本地的配置文件中自带的注册码key2进行比较,如果key1与key2相同,则软件通过验证,正常使用;如果key1与key2不相同,则软件将提示将需要提供正确的注册码。2.根据权利要求1所述的基于磁盘序列号的软件保护方法,其特征在于:所述计算码任意选取。

技术总结
本发明提供了一种基于磁盘序列号的软件保护方法,获得软件当前运行的磁盘序列号,进行与运算,得到注册码key1;key1与本地的配置文件中自带的注册码key2进行比较,如果key1与key2不相同,则软件将提示将需要提供正确的注册码。本发明不需要在软件安装过程中进行额外的配置环境操作,只需要在软件运行目录下放置一个配置文件即可,只要开发人员提供注册码,用户可以将同一套软件安装在多个电脑上,几乎于复制粘贴,确保所有使用的软件版本绝对不会有差异,这样既可以对软件使用权限进行管控,又可以满足用户部署多套软件的需求,特别适合对软件版本要求严格的大型军工项目系统软件联试中。联试中。联试中。


技术研发人员:杨琦 张昌禄 何川 陈振宇 常瑞丰 杨鑫达 李桂斌
受保护的技术使用者:中国电子科技集团公司第二十研究所
技术研发日:2021.11.14
技术公布日:2022/2/23
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献