CN107092815A - 一种保护模块文件的方法及服务器 - Google Patents
一种保护模块文件的方法及服务器 Download PDFInfo
- Publication number
- CN107092815A CN107092815A CN201710206860.4A CN201710206860A CN107092815A CN 107092815 A CN107092815 A CN 107092815A CN 201710206860 A CN201710206860 A CN 201710206860A CN 107092815 A CN107092815 A CN 107092815A
- Authority
- CN
- China
- Prior art keywords
- file
- module file
- information
- module
- key
- 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
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000009434 installation Methods 0.000 claims abstract description 14
- 230000006835 compression Effects 0.000 claims description 28
- 238000007906 compression Methods 0.000 claims description 28
- 230000006870 function Effects 0.000 claims description 24
- 230000009466 transformation Effects 0.000 claims description 16
- 238000003780 insertion Methods 0.000 claims description 14
- 230000037431 insertion Effects 0.000 claims description 14
- 238000000682 scanning probe acoustic microscopy Methods 0.000 claims description 14
- 239000003086 colorant Substances 0.000 description 22
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000001771 impaired effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005194 fractionation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种保护模块文件的方法及服务器,所述方法包括:读取所述模块文件;利用加密算法对所述模块文件进行加密;将加密后的所述模块文件保存为数据文件,使得所述模块文件能以数据文件的形式隐藏在安装目录中;如此,将模块文件进行加密,即使第三方或者黑客盗取到该模块文件,也无法直接使用;并且在安装目录中将模块文件伪装成数据文件,进一步提高了模块文件的隐蔽性,增强对模块文件的保护力度,使得模块文件不能轻易被盗用,进而确保软件开发商的利益。
Description
技术领域
本发明属于通信技术领域,尤其涉及一种保护模块文件的方法及服务器。
背景技术
目前,软件开发过程中通常会采用模块化开发,将软件的功能进行模块化拆分,不同的模块负责不同的功能。同时在设计模块时尽可能的使得模块松耦合,使得模块能够独立使用,从而给模块的使用者提供了极大的方便。
当程序发布时,程序主框架则会加载一个个独立的模块来实现整个程序的功能。对于Windows客户端来说,程序则是一个动态链接库文件(DLL,Dynamic Link Library)。由于在程序发布到客户端后,使用者可以从客户端的安装目录中获取到一个个独立的DLL文件,那么对于第三方或者HACK也可以很方便的获取到所有的模块文件并进行使用,这样就导致一些核心模块中的核心函数被盗用,进而损坏了软件开发商的利益。
发明内容
针对现有技术存在的问题,本发明实施例提供了一种保护模块文件的方法及服务器,用于解决现有技术中在程序发布后,一些核心程序模块中的核心函数容易被第三方或者黑客盗用,导致软件开发商的利益被损坏的技术问题。
本发明实施例提供了一种保护模块文件的方法,所述方法包括:
读取所述模块文件;
利用加密算法对所述模块文件进行加密;
将加密后的所述模块文件保存为数据文件,使得所述模块文件能以数据文件的形式隐藏在安装目录中。
上述方案中,所述读取所述模块文件,包括:
利用函数fopen(“xx”,“rb”)打开所述模块文件;
获取所述模块文件的占用内存;
调用函数fread(buf,filesize,1,file)读取所述模块文件至系统内存中,并将所述模块文件存储至缓存buf中;其中,所述xx为模块文件名。
上述方案中,所述利用加密算法对所述模块文件进行加密,包括:
利用TEA加密算法TEA.encrypt(buf,filesize,key)对所述模块文buf件进行加密;其中,所述key为预设的密钥信息。
上述方案中,所述利用加密算法对所述模块文件进行加密,还包括:
获取所述模块文件的明文信息;
将所述明文信息转换为字符编码;
将所述字符编码转换为相应的数字信息;
根据第一转换规则将所述数字信息转换为至少一组颜色值;通过所述至少一组颜色值生成图像,所述图像为对所述明文信息进行加密的加密结果。
上述方案中,所述利用加密算法对所述模块文件进行加密,还包括:
获取模块文件的明文信息;
根据第二转换规则将所述明文信息转换为至少一组音频码;
通过所述至少一组音频码生成音频;所述音频为对所述明文信息进行加密的加密结果。
上述方案中,所述利用加密算法对所述模块文件进行加密,还包括:
获取密钥信息;
根据所述密钥信息随机生成附加信息,将所述密钥信息与所述附加信息进行组合,形成组合密钥;
根据所述组合密钥将所述模块文件的明文信息转换为密文信息;
根据所述密钥信息将所述附加信息插入所述密文信息中。
上述方案中,所述根据所述密钥信息将所述附加信息插入所述密文信息中,具体包括:
根据所述密钥信息基于混淆算法确定出所述附加信息在所述密文信息中的插入位置;
将所述附加信息插入所述密文信息中的所述插入位置。
上述方案中,所述将加密后的所述模块文件保存为数据文件之前,还包括:
利用压缩函数Zlib.compress(buf,filesize)对所述加密后的所述模块文件进行压缩。
上述方案中,所述将压缩后的所述模块文件保存为数据文件,包括:
建立文件名为“xx.data”的文件夹;
调用函数fwrite(buf,filesize,1,file)将所述压缩后的所述模块文件写入所述“xx.data”的文件夹中。
本发明实施例还提供一种服务器,所述服务器包括:
读取单元,用于读取所述模块文件;
加密单元,用于利用加密算法对所述模块文件进行加密;
压缩单元,用于利用压缩算法对加密后的所述模块文件进行压缩;
存储单元,用于将压缩后的所述模块文件保存为数据文件,使得所述模块文件能以数据文件的形式隐藏在安装目录中。
本发明提供了一种保护模块文件的方法及服务器,所述方法包括:读取所述模块文件;利用加密算法对所述模块文件进行加密;将加密后的所述模块文件保存为数据文件,使得所述模块文件能以数据文件的形式隐藏在安装目录中;如此,将模块文件进行加密,即使第三方或者黑客盗取到该模块文件,也无法直接使用;并且在安装目录中将模块文件伪装成数据文件,进一步提高了模块文件的隐蔽性,增强对模块文件的保护力度,使得模块文件不能轻易被盗用,进而确保软件开发商的利益。
附图说明
图1为本发明实施例一提供的保护模块文件的方法流程示意图;
图2为本发明实施例二提供的保护模块文件的装置结构示意图。
具体实施方式
为了解决核心程序模块中的核心函数容易被第三方或者黑客盗用,导致软件开发商的利益被损坏的技术问题,本发明提供了一种保护模块文件的方法及服务器,所述方法包括:读取所述模块文件;利用加密算法对所述模块文件进行加密;将加密后的所述模块文件保存为数据文件,使得所述模块文件能以数据文件的形式隐藏在安装目录中。
下面通过附图及具体实施例对本发明的技术方案做进一步的详细说明。
实施例一
本实施例提供一种保护模块文件的方法,如图1所示,所述方法包括:
S101,读取所述模块文件。
本步骤中,当模块文件的功能编写完成之后,读取所述模块文件至系统内存,具体地:
首先调用系统库函数fopen(“xx”,“rb”)打开所述模块文件;其中,所述“xx”为模块文件名,所述“rb”为读取文件。
读取到模块文件之后,将文件指针移动至所述模块文件的尾部,获取所述模块文件的占用内存,具体程序实现如下:
fseek(file,0,SEEK_END);
uint filesize=ftell(file);
当获取到所述模块文件的占用内存后,调用函数fread(buf,filesize,1,file)读取所述模块文件至系统内存中,并将所述模块文件存储至缓存buf中。
S102,利用加密算法对所述模块文件进行加密。
本步骤中,读取到整个模块文件的内容后,需要利用加密算法对整个文件进行加密,所述加密算法可以包括:TEA加密算法、RSA加密算法、AES加密算法或其他加密算法,可以将模块文件加密成文字信息,为了提高破解难度,还可以将模块文件加密成图像信息或音频信息等。
当利用TEA加密算法对模块文件进行加密时,具体实现如下:
TEA.encrypt(buf,filesize,key);
其中,buf为读取到的整个模块文件,所述encrypt接口是TEA算法的加密接口,所述key为预设的密钥信息。
当利用RSA加密算法对模块文件进行加密时,具体实现如下:
RSA.encrypt(buf,filesize,key);
其中,buf为读取到的整个模块文件,此时所述encrypt接口是RSA算法的加密接口;所述key为预设的密钥信息。
当利用AES加密算法对模块文件进行加密时,具体实现如下:
AES.encrypt(buf,filesize,key);
其中,buf为读取到的整个模块文件,此时所述encrypt接口是AES算法的加密接口;所述key为预设的密钥信息。
这里,当利用其他加密算法将模块文件加密为图像信息时,具体包括:
获取所述模块文件的明文信息;将所述明文信息转换为字符编码;将所述字符编码转换为相应的数字信息;根据第一转换规则将所述数字信息转换为至少一组颜色值;通过所述至少一组颜色值生成图像,所述图像为对所述明文信息进行加密的加密结果。
具体地,根据第一转换规则将所述数字信息转换为至少一组颜色值,包括:确定每组数字信息的数值;确定每种颜色对应的最大阶层,根据相应的数值与R颜色对应的最大阶层确定所述R颜色的颜色值,并获取第一剩余值;根据所述第一剩余值与G颜色对应最大的阶层确定所述G颜色的颜色值,并获取第二剩余值;基于所述第二剩余值确定所述B颜色的颜色值;将所述R颜色的颜色值、G颜色的颜色值及所述B颜色的颜色值进行组合,获取至少一组(R,G,B)颜色值;其中,所述R颜色为红色,所述G颜色为绿色,所述B颜色为蓝色。
这里,当通过所述至少一组颜色值生成图像之前,所述方法还包括:接收混淆数值;根据所述混淆数值随机生成相应数量的混淆色块;基于混淆算法确定所述混淆色块在所述图像中的写入位置。
而通过所述至少一组颜色值生成图像,包括:确定写入所述至少一组颜色值的第一基准点;以所述第一基准点为起始位置,基于所述混淆色块的数量及所述混淆色块在所述图像中的写入位置,将所述至少一组颜色值与所述混淆色块的颜色值依次写入所述图像中。
进一步地,基于混淆算法确定所述混淆色块在所述图像中的写入位置包括:基于所述混淆数值的数量确定每组所述写入位置的数量;确定所述写入位置的第二基准点;以所述第二基准点为起始位置,每组写入位置依次分布于两组颜色值所对应的颜色块之间。
这里,当利用其他加密算法将模块文件加密为音频信息时,具体包括:
获取模块文件的明文信息;根据第二转换规则将所述明文信息转换为至少一组音频码;通过所述至少一组音频码生成音频;所述音频为对所述明文信息进行加密的加密结果。
具体地,所述根据第二转换规则将所述明文信息转换为至少一组音频码包括:将所述明文信息转换为字符编码;将所述字符编码转换为至少一组数字信息;将所述至少一组数字信息转换为所述至少一组音频码。
所述将所述至少一组数字信息转换为至少一组音频码包括:确定每组数字信息的数值;确定所述每组数字信息中每个数字对应的音频编码;基于所述每个数字对应的音频编码及每组数字信息的数值,将所述每组数字信息转换为相应的音频编码;将相应的音频编码进行组合形成音频码。
进一步地,通过所述至少一组音频码生成音频,包括:遍历所述音频码,获取相应的音频编码,所述音频编码包括:第一音频编码及第二音频编码;将所述第一音频编码转换为第一频率,将所述第二音频编码转换为第二频率,获取频率队列;利用音频生成算法将所述频率队列生成音频。
这里,当加密算法为预设的其他加密算法时,所述利用加密算法对所述模块文件进行加密,还包括:
获取密钥信息;所述密钥是预先设定的,作为加密的口令,所述密钥可以是任意字符,比如:数字或字母等,字符的个数可以包括一个或多个;为了提高密钥的复杂性,本发明中的密钥至少包括六个字符。
当获取到密钥信息后,会基于所述密钥随机生成一附加信息,并根据所述密钥确定所生成的所述附加信息的长度,其中,所述附加信息的长度可以为密钥长度的2~3倍,且附加信息的字符可以包括:数字或字母。加密时,将所述密钥及所述附加信息进行组合,形成一组合密钥。具体地,就是将所述密钥的字符串与所述附加信息的字符串进行拼接,形成一组合密钥。
比如,当密钥信息是12345,附加信息的长度是密钥长度的2倍时,那么随机会生成一个十位的信息来作为附加信息。然后将密钥信息与随机生成的十位的信息进行拼接组合,形成一组合密钥,然后根据所述组合密钥将所述特殊模块文件的明文信息转换为密文信息。
当获取到密文信息后,根据所述密钥将所述附加信息插入所述密文信息中,实现对信息的加密。
具体地,根据所述密钥将所述附加信息插入所述密文信息包括:根据所述密钥基于混淆算法确定出所述附加信息在所述密文信息中的插入位置;将所述附加信息插入所述密文信息中的所述插入位置。
根据所述密钥基于混淆算法确定出所述附加信息在所述密文信息中的插入位置,包括;确定所述密钥的参照位;获取所述密钥参照位的字符;按照预设的第三转换规则将所述字符转换为一数值;基于所述数值确定出所述插入位置。
其中,预设的第三转换规则为将所述可以包括多种:比如将字符与十进制数值对应转换,将字符与ASCII码值进行对应转换。
当将字符与ASCII码值进行对应转换时,获取到密钥新后,预设密钥的参照位;获取所述密钥参照位的字符;获取所述字符对应的ASCII码值;以所述ASCII码值为参照值,将所述附加信息插入所述密文信息中相应值的位置之后。
这里,所述密钥的参照位可以为密钥中的任一位,比如首位或末位;当以密钥的末位设置为密钥的参照位,比如密钥信息为12345,那么就是参照位的字符就是“5”,再获取到“5”对应的ASCII码为“53”,然后将附加信息插入到密文信息中的第53个字符之后的位置,返回加密后的信息,实现了对模块文件的加密;其中,如果密文信息的字符没有这么多,可以以零代替。
这样就完成了对模块文件的加密。
对所述模块文件加密完成之后,为了减小模块文件的占用内存,节省传输带宽,提高传输效率,还需利用压缩算法对加密后的所述模块文件进行压缩。
利用压缩算法对加密后的所述模块文件进行压缩的具体实现如下:
利用函数Zlib.compress(buf,filesize)对所述加密后的所述模块文件进行压缩。
S103,将加密后的所述模块文件保存为数据文件。
本步骤中,为了提高模块文件的隐蔽性,使其不容易被发现,还需将压缩后的所述模块文件保存为最终发布所需的数据文件,最终将模块文件以数据文件的形式存在安装目录中。
具体地,可以调用文件读写库函数将模块文件的内存数据保存至磁盘等存储介质中,比如写入“xx.data”的文件夹中,具体程序实现如下:
FILE*file=fopen(“xx.data”,“wb”);
fwrite(buf,filesize,1,file);
Fclose(file);
其中,所述“xx.data”为预先建立的文件夹。
实施例二
相应于实施例一,本实施例还提供一种服务器,如图2所示,所述服务器包括:读取单元21、加密单元22、压缩单元23及存储单元24;其中,
当模块文件的功能编写完成之后,所述读取单元21用于读取所述模块文件;具体地:
所述读取单元21首先调用系统库函数fopen(“xx”,“rb”)打开所述模块文件;其中,所述“xx”为模块文件名,所述“rb”为读取文件。
读取到模块文件之后,将文件指针移动至所述模块文件的尾部,获取所述模块文件的占用内存,具体程序实现如下:
fseek(file,0,SEEK_END);
uint filesize=ftell(file);
当获取到所述模块文件的占用内存后,调用函数fread(buf,filesize,1,file)读取所述模块文件至系统内存中,并将所述模块文件存储至缓存buf中。
当读取单元21读取到整个模块文件的内容后,所述加密单元22用于利用加密算法对所述模块文件进行加密;所述加密算法可以包括:TEA加密算法、RSA加密算法、AES加密算法或其他加密算法,可以将模块文件加密成文字信息,为了提高破解难度,还可以将模块文件加密成图像信息或音频信息等。
当所述加密单元22利用TEA加密算法对模块文件进行加密时,具体实现如下:
TEA.encrypt(buf,filesize,key);
其中,buf为读取到的整个模块文件,所述encrypt接口是TEA算法的加密接口,所述key为预设的密钥信息。
当所述加密单元22利用RSA加密算法对模块文件进行加密时,具体实现如下:
RSA.encrypt(buf,filesize,key);
其中,buf为读取到的整个模块文件,此时所述encrypt接口是RSA算法的加密接口;所述key为预设的密钥信息。
当所述加密单元22利用AES加密算法对模块文件进行加密时,具体实现如下:
AES.encrypt(buf,filesize,key);
其中,buf为读取到的整个模块文件,此时所述encrypt接口是AES算法的加密接口;所述key为预设的密钥信息。
这里,当所述加密单元22利用其他加密算法将模块文件加密为图像信息时,具体包括:
获取所述模块文件的明文信息;将所述明文信息转换为字符编码;将所述字符编码转换为相应的数字信息;根据第一转换规则将所述数字信息转换为至少一组颜色值;通过所述至少一组颜色值生成图像,所述图像即为对所述明文信息进行加密的加密结果。
具体地,根据第一转换规则将所述数字信息转换为至少一组颜色值,包括:确定每组数字信息的数值;确定每种颜色对应的最大阶层,根据相应的数值与R颜色对应的最大阶层确定所述R颜色的颜色值,并获取第一剩余值;根据所述第一剩余值与G颜色对应最大的阶层确定所述G颜色的颜色值,并获取第二剩余值;基于所述第二剩余值确定所述B颜色的颜色值;将所述R颜色的颜色值、G颜色的颜色值及所述B颜色的颜色值进行组合,获取至少一组(R,G,B)颜色值;其中,所述R颜色为红色,所述G颜色为绿色,所述B颜色为蓝色。
这里,当通过所述至少一组颜色值生成图像之前,所述方法还包括:接收混淆数值;根据所述混淆数值随机生成相应数量的混淆色块;基于混淆算法确定所述混淆色块在所述图像中的写入位置。
而通过所述至少一组颜色值生成图像,包括:确定写入所述至少一组颜色值的第一基准点;以所述第一基准点为起始位置,基于所述混淆色块的数量及所述混淆色块在所述图像中的写入位置,将所述至少一组颜色值与所述混淆色块的颜色值依次写入所述图像中。
进一步地,基于混淆算法确定所述混淆色块在所述图像中的写入位置包括:基于所述混淆数值的数量确定每组所述写入位置的数量;确定所述写入位置的第二基准点;以所述第二基准点为起始位置,每组写入位置依次分布于两组颜色值所对应的颜色块之间。
这里,当所述加密单元22利用其他加密算法将模块文件加密为音频信息时,具体包括:
获取模块文件的明文信息;根据第二转换规则将所述明文信息转换为至少一组音频码;通过所述至少一组音频码生成音频;所述音频即为对所述明文信息进行加密的加密结果。
具体地,所述根据第二转换规则将所述明文信息转换为至少一组音频码包括:将所述明文信息转换为字符编码;将所述字符编码转换为至少一组数字信息;将所述至少一组数字信息转换为所述至少一组音频码。
所述将所述至少一组数字信息转换为至少一组音频码包括:确定每组数字信息的数值;确定所述每组数字信息中每个数字对应的音频编码;基于所述每个数字对应的音频编码及每组数字信息的数值,将所述每组数字信息转换为相应的音频编码;将相应的音频编码进行组合形成音频码。
进一步地,通过所述至少一组音频码生成音频,包括:遍历所述音频码,获取相应的音频编码,所述音频编码包括:第一音频编码及第二音频编码;将所述第一音频编码转换为第一频率,将所述第二音频编码转换为第二频率,获取频率队列;利用音频生成算法将所述频率队列生成音频。
当所述加密单元22利用其他加密算法对所述模块文件进行加密时,利用加密算法对整个文件进行加密,还包括:
获取所述密钥信息;所述密钥是预先设定的,作为加密的口令,所述密钥可以是任意字符,比如:数字或字母等,字符的个数可以包括一个或多个;为了提高密钥的复杂性,本发明中的密钥至少包括六个字符。
当获取到密钥信息后,会基于所述密钥随机生成一附加信息,并根据所述密钥确定所生成的所述附加信息的长度,其中,所述附加信息的长度可以为密钥长度的2~3倍,且附加信息的字符可以包括:数字或字母。加密时,将所述密钥及所述附加信息进行组合,形成一组合密钥。具体地,就是将所述密钥的字符串与所述附加信息的字符串进行拼接,形成一组合密钥。
比如,当密钥信息是12345,附加信息的长度是密钥长度的2倍时,那么随机会生成一个十位的信息来作为附加信息。然后将密钥信息与随机生成的十位的信息进行拼接组合,形成一组合密钥,然后根据所述组合密钥将所述特殊模块文件的明文信息转换为密文信息。
当获取到密文信息后,根据所述密钥将所述附加信息插入所述密文信息中,实现对信息的加密。
具体地,根据所述密钥将所述附加信息插入所述密文信息包括:根据所述密钥基于混淆算法确定出所述附加信息在所述密文信息中的插入位置;将所述附加信息插入所述密文信息中的所述插入位置。
根据所述密钥基于混淆算法确定出所述附加信息在所述密文信息中的插入位置,包括;确定所述密钥的参照位;获取所述密钥参照位的字符;按照预设的第三转换规则将所述字符转换为一数值;基于所述数值确定出所述插入位置。
其中,预设的第三转换规则为将所述可以包括多种:比如将字符与十进制数值对应转换,将字符与ASCII码值进行对应转换。
当将字符与ASCII码值进行对应转换时,获取到密钥新后,预设密钥的参照位;获取所述密钥参照位的字符;获取所述字符对应的ASCII码值;以所述ASCII码值为参照值,将所述附加信息插入所述密文信息中相应值的位置之后。
这里,所述密钥的参照位可以为密钥中的任一位,比如首位或末位;当以密钥的末位设置为密钥的参照位,比如密钥信息为12345,那么就是参照位的字符就是“5”,再获取到“5”对应的ASCII码为“53”,然后将附加信息插入到密文信息中的第53个字符之后的位置,返回加密后的信息,实现了对模块文件的加密;其中,如果密文信息的字符没有这么多,可以以零代替。
这样所述加密单元22就完成了对模块文件的加密。
当所述加密单元22所述模块文件加密完成之后,为了减小模块文件的占用内存,节省传输带宽,提高传输效率,压缩单元23用于利用压缩算法对加密后的所述模块文件进行压缩。
具体地,所述压缩单元23利用压缩算法对加密后的所述模块文件进行压缩的具体实现如下:
利用函数Zlib.compress(buf,filesize)对所述加密后的所述模块文件进行压缩。
当压缩单元23将模块文件压缩完毕之后,为了提高模块文件的隐蔽性,使其不容易被发现,所述存储单元24还需将压缩后的所述模块文件保存为最终发布所需的数据文件,最终将模块文件以数据文件的形式存在安装目录中。
具体地,所述存储单元24可以调用文件读写库函数将模块文件的内存数据保存至磁盘等存储介质中,比如写入“xx.data”的文件夹中,具体程序实现如下:
FILE*file=fopen(“xx.data”,“wb”);
fwrite(buf,filesize,1,file);
Fclose(file);
其中,所述“xx.data”为预先建立的文件夹。
本发明实施例提供的保护模块文件的方法及服务器能带来的有益效果至少是:
本发明提供了一种保护模块文件的方法及服务器,所述方法包括:读取所述模块文件;利用加密算法对所述模块文件进行加密;利用压缩算法对加密后的所述模块文件进行压缩;将压缩后的所述模块文件保存为数据文件,使得所述模块文件能以数据文件的形式隐藏在安装目录中;如此,将模块文件进行加密成文字信息、图像信息或音频信息,提高了模块文件的安全性,即使第三方或者黑客盗取到该模块文件,由于没有破解方法也无法使用;并且在安装目录中将模块文件伪装成数据文件,进一步提高了模块文件的隐蔽性,增强对模块文件的保护力度,使得模块文件不能轻易被盗用,进而确保软件开发商的利益。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种保护模块文件的方法,其特征在于,所述方法包括:
读取所述模块文件;
利用加密算法对所述模块文件进行加密;
将加密后的所述模块文件保存为数据文件,使得所述模块文件能以数据文件的形式隐藏在安装目录中。
2.如权利要求1所述的方法,其特征在于,所述读取所述模块文件,包括:
利用函数fopen(“xx”,“rb”)打开所述模块文件;
获取所述模块文件的占用内存;
调用函数fread(buf,filesize,1,file)读取所述模块文件至系统内存中,并将所述模块文件存储至缓存buf中;其中,所述xx为模块文件名。
3.如权利要求1所述的方法,其特征在于,所述利用加密算法对所述模块文件进行加密,包括:
利用TEA加密算法TEA.encrypt(buf,filesize,key)对所述模块文buf件进行加密;其中,所述key为预设的密钥信息。
4.如权利要求1所述的方法,其特征在于,所述利用加密算法对所述模块文件进行加密,还包括:
获取所述模块文件的明文信息;
将所述明文信息转换为字符编码;
将所述字符编码转换为相应的数字信息;
根据第一转换规则将所述数字信息转换为至少一组颜色值;通过所述至少一组颜色值生成图像,所述图像为对所述明文信息进行加密的加密结果。
5.如权利要求1所述的方法,其特征在于,所述利用加密算法对所述模块文件进行加密,还包括:
获取模块文件的明文信息;
根据第二转换规则将所述明文信息转换为至少一组音频码;
通过所述至少一组音频码生成音频;所述音频为对所述明文信息进行加密的加密结果。
6.如权利要求1所述的方法,其特征在于,所述利用加密算法对所述模块文件进行加密,还包括:
获取密钥信息;
根据所述密钥信息随机生成附加信息,将所述密钥信息与所述附加信息进行组合,形成组合密钥;
根据所述组合密钥将所述模块文件的明文信息转换为密文信息;
根据所述密钥信息将所述附加信息插入所述密文信息中。
7.如权利要求6所述的方法,其特征在于,所述根据所述密钥信息将所述附加信息插入所述密文信息中,具体包括:
根据所述密钥信息基于混淆算法确定出所述附加信息在所述密文信息中的插入位置;
将所述附加信息插入所述密文信息中的所述插入位置。
8.如权利要求1所述的方法,其特征在于,所述将加密后的所述模块文件保存为数据文件之前,还包括:
利用压缩函数Zlib.compress(buf,filesize)对所述加密后的所述模块文件进行压缩。
9.如权利要求1所述的方法,其特征在于,所述将压缩后的所述模块文件保存为数据文件,包括:
建立文件名为“xx.data”的文件夹;
调用函数fwrite(buf,filesize,1,file)将所述压缩后的所述模块文件写入所述“xx.data”的文件夹中。
10.一种服务器,其特征在于,所述服务器包括:
读取单元,用于读取所述模块文件;
加密单元,用于利用加密算法对所述模块文件进行加密;
压缩单元,用于利用压缩算法对加密后的所述模块文件进行压缩;
存储单元,用于将压缩后的所述模块文件保存为数据文件,使得所述模块文件能以数据文件的形式隐藏在安装目录中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710206860.4A CN107092815A (zh) | 2017-03-31 | 2017-03-31 | 一种保护模块文件的方法及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710206860.4A CN107092815A (zh) | 2017-03-31 | 2017-03-31 | 一种保护模块文件的方法及服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107092815A true CN107092815A (zh) | 2017-08-25 |
Family
ID=59646442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710206860.4A Pending CN107092815A (zh) | 2017-03-31 | 2017-03-31 | 一种保护模块文件的方法及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107092815A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110032529A (zh) * | 2018-01-11 | 2019-07-19 | 武汉斗鱼网络科技有限公司 | 一种内存管理方法及相关装置 |
CN111506913A (zh) * | 2020-04-21 | 2020-08-07 | 上海明略人工智能(集团)有限公司 | 音频加密方法和装置、存储介质及电子装置 |
WO2021139172A1 (zh) * | 2020-01-10 | 2021-07-15 | 苏州浪潮智能科技有限公司 | 一种文件存储为音频实现加密的方法、装置和设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1466839A (zh) * | 2000-09-26 | 2004-01-07 | �Ҵ���˾ | 通过安全的代码转换进行网络化的信息散布的方法和装置 |
CN101908119A (zh) * | 2010-08-12 | 2010-12-08 | 浙江中控软件技术有限公司 | 一种动态链接库dll文件的处理方法和装置 |
CN104978542A (zh) * | 2015-06-11 | 2015-10-14 | 福建天晴数码有限公司 | 安全存储数据和访问数据的方法及系统 |
CN106295402A (zh) * | 2016-08-16 | 2017-01-04 | 武汉斗鱼网络科技有限公司 | 一种dll文件的隐藏方法及系统 |
CN106330976A (zh) * | 2016-11-03 | 2017-01-11 | 武汉斗鱼网络科技有限公司 | 一种信息加、解密的方法及装置 |
CN106506487A (zh) * | 2016-11-03 | 2017-03-15 | 武汉斗鱼网络科技有限公司 | 一种信息加、解密方法及装置 |
-
2017
- 2017-03-31 CN CN201710206860.4A patent/CN107092815A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1466839A (zh) * | 2000-09-26 | 2004-01-07 | �Ҵ���˾ | 通过安全的代码转换进行网络化的信息散布的方法和装置 |
CN101908119A (zh) * | 2010-08-12 | 2010-12-08 | 浙江中控软件技术有限公司 | 一种动态链接库dll文件的处理方法和装置 |
CN104978542A (zh) * | 2015-06-11 | 2015-10-14 | 福建天晴数码有限公司 | 安全存储数据和访问数据的方法及系统 |
CN106295402A (zh) * | 2016-08-16 | 2017-01-04 | 武汉斗鱼网络科技有限公司 | 一种dll文件的隐藏方法及系统 |
CN106330976A (zh) * | 2016-11-03 | 2017-01-11 | 武汉斗鱼网络科技有限公司 | 一种信息加、解密的方法及装置 |
CN106506487A (zh) * | 2016-11-03 | 2017-03-15 | 武汉斗鱼网络科技有限公司 | 一种信息加、解密方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110032529A (zh) * | 2018-01-11 | 2019-07-19 | 武汉斗鱼网络科技有限公司 | 一种内存管理方法及相关装置 |
CN110032529B (zh) * | 2018-01-11 | 2021-11-09 | 武汉斗鱼网络科技有限公司 | 一种内存管理方法及相关装置 |
WO2021139172A1 (zh) * | 2020-01-10 | 2021-07-15 | 苏州浪潮智能科技有限公司 | 一种文件存储为音频实现加密的方法、装置和设备 |
CN111506913A (zh) * | 2020-04-21 | 2020-08-07 | 上海明略人工智能(集团)有限公司 | 音频加密方法和装置、存储介质及电子装置 |
CN111506913B (zh) * | 2020-04-21 | 2024-03-15 | 上海明略人工智能(集团)有限公司 | 音频加密方法和装置、存储介质及电子装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10419416B2 (en) | Encryption and decryption techniques using shuffle function | |
CN108833114A (zh) | 一种基于区块链的去中心化身份认证系统及方法 | |
CN104579689B (zh) | 一种软密钥系统及实现方法 | |
CN111314069B (zh) | 基于区块链的摇号系统、方法、电子设备及存储介质 | |
CN101800811B (zh) | 手机数据安全防护方法 | |
CN106127075A (zh) | 一种云存储环境下基于隐私保护的可搜索加密方法 | |
US8595512B2 (en) | Data control method of cloud storage | |
CN104123506B (zh) | 数据访问方法、装置、数据加密、存储及访问方法、装置 | |
CN106067874B (zh) | 一种将数据记录至服务器端的方法、终端和服务器 | |
CN107092815A (zh) | 一种保护模块文件的方法及服务器 | |
CN106295403A (zh) | 一种基于hbase的数据安全处理方法及系统 | |
CN110084599A (zh) | 密钥处理方法、装置、设备和存储介质 | |
CN107241184A (zh) | 基于改良aes的个人密码生成和管理方法 | |
WO2021047477A1 (zh) | 一种密钥分配方法、系统、移动终端和可穿戴设备 | |
CN109510820A (zh) | 一种去中心化可自定义的区块链密码方法 | |
CN103577769A (zh) | 文件内容安全管理方法及管理系统 | |
CN103458101B (zh) | 一种手机私密联系人的硬件加密存储方法及系统 | |
CN207251631U (zh) | 一种改进型的sim卡以及移动终端和身份识别系统 | |
CN107733936B (zh) | 一种移动数据的加密方法 | |
CN110795745B (zh) | 一种基于服务器的信息存储和传送系统及其方法 | |
CN111815821B (zh) | 一种应用于智能门锁的ic卡安全算法 | |
CN204967836U (zh) | 应用于pstn公网的量子数据终端 | |
CN103514540A (zh) | 一种优盾业务实现方法及系统 | |
CN106850557A (zh) | 一种写入和读取电话卡联系人信息的方法、系统、终端 | |
CN105071933B (zh) | 应用于pstn公网的量子数据终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170825 |