CN101980239A - 软件代码加密方法 - Google Patents
软件代码加密方法 Download PDFInfo
- Publication number
- CN101980239A CN101980239A CN2010105416829A CN201010541682A CN101980239A CN 101980239 A CN101980239 A CN 101980239A CN 2010105416829 A CN2010105416829 A CN 2010105416829A CN 201010541682 A CN201010541682 A CN 201010541682A CN 101980239 A CN101980239 A CN 101980239A
- Authority
- CN
- China
- Prior art keywords
- encryption
- data
- file
- address
- encrypted
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明涉及加密技术,其公开了一种软件代码加密方法,针对软件代码本身进行加密,解决传统技术中加密成本高、容易被破解的问题。其技术方案的要点包括以下步骤:a.按二进制格式打开需加密的文件,新建加密后的输出文件;b.判断需加密的文件指针是否到到达该文件结束的地址,是则执行步骤g,否则执行步骤c;c.从需加密的文件读取一个字节的数据和当前指针的地址;d.判断当前指针是否到达起始加密的地址,是则执行步骤e,否则执行步骤f;e.对该数据进行加密,并将加密后的数据写入输出文件,返回步骤b;f.将该数据直接写入输出文件,返回步骤b;g.关闭需加密的文件,结束。本发明适用于软件代码加密。
Description
技术领域
本发明涉及加密技术,具体的说是涉及一种软件代码加密方法。
背景技术
目前各厂家花大量精力、人力开发出来的软件代码,开机LOGO都有一定的规律可循,很容易被一些小公司、非法商家描板,软件代码更换为自己的LOGO后盗版。传统技术中对软件代码的加密有两种方式,其中一种为硬件加密,即增加加密芯片,该方式明显增加了整机成本,而且要对加密后的数据进行恢复还需要增加解密芯片,无疑又增加了一项成本;另外一种方式为软件加密,其是通过对由二进制代码构成的程序进行指定数据部分或全部数据按一定的算法计算出校验码放在程序最后,在设备开机时,首先判断校验码是否正确,正确才正常启动,不正确就无法正常开机,此方法未对二进制代码本身进行加密,容易被破解,一般厂家可以更改代码中有一定数据特征的数据(如开机LOGO、按键码、遥控码等)找出校验码就可以变成自己的软件使用,达不到防盗版的目的。
发明内容
本发明所要解决的技术问题是:提出一种软件代码加密方法,针对软件代码本身进行加密,解决传统技术中加密成本高、容易被破解的问题。
本发明解决上述技术问题所采用的技术方案是:软件代码加密方法,包括以下步骤:
a.按二进制格式打开需加密的文件,新建加密后的输出文件;
b.判断需加密的文件指针是否到到达该文件结束的地址,是则执行步骤g,否则执行步骤c;
c.从需加密的文件读取一个字节的数据和当前指针的地址;
d.判断当前指针是否到达起始加密的地址,是则执行步骤e,否则执行步骤f;
e.对该数据进行加密,并将加密后的数据写入输出文件,返回步骤b;
f.将该数据直接写入输出文件,返回步骤b;
g.关闭需加密的文件,结束。
进一步,所述步骤e中,对该数据的高四位和低四位按照不同的加密算法进行加密。
本发明的有益效果是:对软件代码本身进行加密,加密的同时不增加硬件成本,自主加密,保密性更高,代码不易被破解,防止盗版,保护开发者的知识产权。
附图说明
图1为本发明的方法流程图。。
具体实施方式
下面结合附图对本发明作进一步的描述。
本发明公开了一种软件代码加密方法,针对软件代码本身进行加密,解决传统技术中加密成本高、容易被破解的问题。相对于传统技术其改进点在于:对软件代码本身进行加密,不增加硬件成本,采用自主加密,保密性更高,代码不易被破解,防止盗版,保护开发者的知识产权。在解密方面,只需要在程序中设计针对加密算法的解密算法即可。
如图1所示,软件代码加密方法,包括以下步骤:
a.按二进制格式打开需加密的文件,新建加密后的输出文件;
b.判断需加密的文件指针是否到到达该文件结束的地址,是则执行步骤g,否则执行步骤c;
c.从需加密的文件读取一个字节的数据和当前指针的地址;
d.判断当前指针是否到达起始加密的地址,是则执行步骤e,否则执行步骤f;
e.对该数据进行加密,并将加密后的数据写入输出文件,返回步骤b;
f.将该数据直接写入输出文件,返回步骤b;
g.关闭需加密的文件,结束。
实施例:
本例主要针对步骤e中的加密方式进行说明,为了增加加密后的程序保密性,可采用对数据的高位和地位不同的加密算法进行加密的方式。对数据的高四位采用变址算法,对数据的低四位采用自定义算法,现具体说明如下:
(1)高位变址自定义加密法:
1.用户用0-F的数每行任意安排位置,完全自主定义一个二维数组;
Usertblh[4][16]={
A,B,8,9,E,F,C,D,2,3,0,1,6,7,4,5,
B,A,9,8,F,E,D,C,3,2,1,0,7,6,5,4,
E,F,C,D,A,B,8,9,6,7,4,5,2,3,0,1,
F,E,D,C,B,D,9,8,7,6,5,4,3,2,1,0
};
2.根据读取数据的地址用128除,取整除后的余数,余数除16如果除16后的商为0、2,加密后的数就是用户指定义二维数组的第一行的加密前的高四位对应列的数据(Usertblh[0][(Data&0xf0)>>4]);如果除16后的商为1、3,加密后的数就是用户指定义二维数组的第二行的加密前的高四位对应列的数据(Usertblh[1][(Data&0xf0)>>4]);如果除16后的商为4、6,加密后的数就是用户指定义二维数组的第三行的加密前的高四位对应列的数据(Usertblh[2][(Data&0xf0)>>4]);如果除16后的商为5、7,加密后的数就是用户指定义二维数组的第四行的加密前的高四位对应列的数据(Usertblh[3][(Data&0xf0)>>4])。加密前相同数据由于地址不同,加密算法不一样,加密后的数据就不一样。
(2)低位自定义加密法:
1.用户用0-F的不同数任意安排位置,完全自主定义一个一维数组
UsertblL[16]={5,4,7,6,1,0,3,2,D,C,F,E,9,8,B,A};
2.根据读取的数据,用第四位查表UsaertblL转换位加密数据(Usertbll[Data&0x0f])。加密前后数据完全不一样。
例1:对地址为0x80的数据0x55加密,步骤如下:
1.0x80除128余数为0,0除16的商为0;
2.高四位(5)采用高位变址自定义加密法,由于地址用128除,取整除后的余数,余数除16的商为0,加密后的数就为0xF(Usertblh[0][5]);
3.低四位(5)采用低位自定义加密后的数就为0x0(UsertblL[5]);
4.加密后数据变为0xF0;
例2:对地址为0x90的数据0x55加密,步骤如下:
1.0x80除128余数为16,16除16的商为1;
2.高四位(5)采用高位变址自定义加密法,由于地址用128除,取整除后的余数,余数除16的商为1,加密后的数就为0xE(Usertblh[1][5]);
3.低四位(5)采用低位自定义加密后的数就为0x0(UsertblL[5]);
4.加密后数据变为0xE0;
从例1、2可以看出相同的数据加密后由于地址不一样,0x55当地址为0x80时加密后的数是0xF0,当地址为0x90时加密后的数就是0xE0。
Claims (2)
1.软件代码加密方法,其特征在于:包括以下步骤:
a.按二进制格式打开需加密的文件,新建加密后的输出文件;
b.判断需加密的文件指针是否到到达该文件结束的地址,是则执行步骤g,否则执行步骤c;
c.从需加密的文件读取一个字节的数据和当前指针的地址;
d.判断当前指针是否到达起始加密的地址,是则执行步骤e,否则执行步骤f;
e.对该数据进行加密,并将加密后的数据写入输出文件,返回步骤b;
f.将该数据直接写入输出文件,返回步骤b;
g.关闭需加密的文件,结束。
2.如权利要求1所述的软件代码加密方法,其特征在于:所述步骤e中,对该数据的高四位和低四位按照不同的加密算法进行加密。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105416829A CN101980239A (zh) | 2010-11-12 | 2010-11-12 | 软件代码加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105416829A CN101980239A (zh) | 2010-11-12 | 2010-11-12 | 软件代码加密方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101980239A true CN101980239A (zh) | 2011-02-23 |
Family
ID=43600741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105416829A Pending CN101980239A (zh) | 2010-11-12 | 2010-11-12 | 软件代码加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101980239A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108491696A (zh) * | 2018-03-27 | 2018-09-04 | 四川长虹电器股份有限公司 | 一种代码加密方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101335616A (zh) * | 2008-07-24 | 2008-12-31 | 江苏大学 | 一种具有无限密钥空间的对称加密方法 |
CN101488860A (zh) * | 2009-02-20 | 2009-07-22 | 四川长虹电器股份有限公司 | 一种文件加密、解密方法 |
CN101655894A (zh) * | 2008-08-19 | 2010-02-24 | 上海华虹集成电路有限责任公司 | 在通用串行总线加密锁设备上提高分组算法吞吐量的方法 |
-
2010
- 2010-11-12 CN CN2010105416829A patent/CN101980239A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101335616A (zh) * | 2008-07-24 | 2008-12-31 | 江苏大学 | 一种具有无限密钥空间的对称加密方法 |
CN101655894A (zh) * | 2008-08-19 | 2010-02-24 | 上海华虹集成电路有限责任公司 | 在通用串行总线加密锁设备上提高分组算法吞吐量的方法 |
CN101488860A (zh) * | 2009-02-20 | 2009-07-22 | 四川长虹电器股份有限公司 | 一种文件加密、解密方法 |
Non-Patent Citations (1)
Title |
---|
《微计算机信息》 20071231 孙玉强 顾玉宛 孙富琴 基于随机码数列的文件加密算法的实现 63-82页 1-2 第23卷, 第2-3期 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108491696A (zh) * | 2018-03-27 | 2018-09-04 | 四川长虹电器股份有限公司 | 一种代码加密方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8543839B2 (en) | Electronic device and method of software or firmware updating of an electronic device | |
JP5648209B2 (ja) | 暗号キー選択装置を具備するストレージ・システム及び暗号キー選択方法 | |
WO2017041603A1 (zh) | 数据加密方法、装置及移动终端、计算机存储介质 | |
US20160197899A1 (en) | Method of Dynamically Encrypting Fingerprint Data and Related Fingerprint Sensor | |
CN102123030B (zh) | 加密、解密电路 | |
CN101261666B (zh) | 一种通过加密可执行程序文件实现软件版权保护的方法 | |
CN104025499A (zh) | 设备及其认证方法 | |
CN104573528A (zh) | 一种防拷贝Soc启动方法及芯片 | |
CN103999399A (zh) | 半导体存储设备 | |
CN104040936A (zh) | 半导体存储设备 | |
CN107534549B (zh) | 可读存储介质、用于数据流字块加密的方法及系统 | |
JP2012044577A5 (zh) | ||
CN108809920A (zh) | 采加密技术的数据中心与数据中心操作方法 | |
CN105162578B (zh) | 应用于通用数字信号处理器的加密电路 | |
CN109600620A (zh) | 视频文件保护方法 | |
CN101174941B (zh) | 一种移动终端文件离线数字版权保护方法及装置 | |
CN102609368B (zh) | 固态硬盘数据加解密的方法及其固态硬盘 | |
CN101739593B (zh) | 集成电路卡介质访问控制码安全认证方法 | |
CN103907309A (zh) | 存储器 | |
CN101980239A (zh) | 软件代码加密方法 | |
KR20180059217A (ko) | 메모리 데이터 보안 처리 장치 및 방법 | |
CN101556638A (zh) | 数据处理设备 | |
RU2014134714A (ru) | Способ записи и считывания данных | |
CN109558341A (zh) | 计算机内存数据保护方法和计算机 | |
CN104393988A (zh) | 一种可逆的数据加密方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110223 |