办法一、作为嵌入式资源
图1
采用这种办法的优点是资源文件做成整个可执行文件的一部分了,优点是不同反编译等手段,无法获知程序的内部情况,缺点是因为已经嵌入到exe中了,所以无法对嵌入的文件做内容上的修改。
图:打开调换字节顺序的word文件的情况
办法四、对文件字节进行补运算
实践证明:对一个字节变量b,以下操作横成立:~(~b)=b,利用这个原理我们可以对文件的字节值进行位操作来保护,我们可以将原始文件的字节值进行一次~运算,将加密后的文件字节内容随同软件一同发布,在需要查看和修改文件的时候,再对文件进行一次~运算就可以了。这种方法的优点要知道文件内容只需要对文件逐字节进行~运算就可以了,缺点是一旦被人知道此种加密方式,懂得一点编程的人就可以对文件内容复原。
程序中关键代码如下:
/下面的循环实现对文件内容逐字节进行求补运算
for (int i = 1; i < fileLength; i++)
{
source[i] = (byte)(~source[i]);
}
return source;
总结:以上各种方式各有优缺点,需要根据的最终用户的计算机水平来确定什么保护方法。
办法二、改文件后缀
我问过不少朋友,有些使用过这种办法,因为一般来说一种文件后缀对应一种编译或者查看的工具,例如.mdb通过Access可以查看和修改,.txt可以通过记事本查看和修改,如果我们把一个txt文件的后缀改成.mdb,那么双击后系统会用Access打开文件,结果自然是乱码,如果我们不理会文件后缀,仍然以记事本打开则仍然可以正常查看和编辑。也就是我们更改文件后缀达到误导系统用错误的方式打开的目的。