【引自周公的博客】在编写.net程序(特别是WinForm时)经常会遇到一些需要加以保护的资源文件,比如一些数据库文件、图片文件等等,我们希望能被自己的程序访问,但是又不希望别人把我们辛辛苦苦收集来的数据被别人毫不费力地用于自己的程序中,在网上已经有不少朋友问到过这个问题,我也与不少朋友探讨过这个问题,今天把一些常用的做法介绍给大家,仅供参考。
办法一、作为嵌入式资源
![]() |
| 图1 |
采用这种办法的优点是资源文件做成整个可执行文件的一部分了,优点是不同反编译等手段,无法获知程序的内部情况,缺点是因为已经嵌入到exe中了,所以无法对嵌入的文件做内容上的修改。
![]() |
| 图1 |
图:打开调换字节顺序的word文件的情况
办法四、对文件字节进行补运算
实践证明:对一个字节变量b,以下操作横成立:~(~b)=b,利用这个原理我们可以对文件的字节值进行位操作来保护,我们可以将原始文件的字节值进行一次~运算,将加密后的文件字节内容随同软件一同发布,在需要查看和修改文件的时候,再对文件进行一次~运算就可以了。这种方法的优点要知道文件内容只需要对文件逐字节进行~运算就可以了,缺点是一旦被人知道此种加密方式,懂得一点编程的人就可以对文件内容复原。
程序中关键代码如下:
|
总结:以上各种方式各有优缺点,需要根据的最终用户的计算机水平来确定什么保护方法。
办法二、改文件后缀
我问过不少朋友,有些使用过这种办法,因为一般来说一种文件后缀对应一种编译或者查看的工具,例如.mdb通过Access可以查看和修改,.txt可以通过记事本查看和修改,如果我们把一个txt文件的后缀改成.mdb,那么双击后系统会用Access打开文件,结果自然是乱码,如果我们不理会文件后缀,仍然以记事本打开则仍然可以正常查看和编辑。也就是我们更改文件后缀达到误导系统用错误的方式打开的目的。也有些朋友甚至干脆不用文件后缀,这样就让操作系统无所适从了。这种方法的优点是知道文件的实际格式后可以对文件进行查看和修改,缺点是常用的文件后缀不多,遇上有心人可以尝试通过更改文件后缀的办法来获取文件内容的办法,这种几率还是比较大的。
办法三、对文件的字节顺序进行调整
这种办法是我今天要重点介绍的一种办法。几年前我参与过一个OA系统的开发,里面有一个环节就是如何保证以Word形式保存的合同、审批申请不会被篡改。我当时的做法就是Word文件分段存储,也就是将整个文件头20个byte存放到数据库,剩余字节仍然以Word文档的方式存储到硬盘上,这样别人通过正常办法打开Word文件时看到的乱码,一旦需要调看文件时,再通过程序将头20字节和本地存储的文件的内容合并成一个完整的Word文档。后来我嫌利用数据库存储麻烦,将这种办法改进了一下,将文件的前n个字节与后n个字节位置对换,这样不更改文件后缀,仍然可以实现对文件内容进行查看和修改。这种办法的缺点是对于文本型的文件,如果不进行字节调换,则没有调换的部分依然不是乱码。
程序中关键代码如下:
|
return total;//返回调整次序后的文件字节内容说明:完整源代码请到http://download.csdn.net/source/417558下载。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=2296966
|
||||
| · 首届中国IT工程师生态.. · 思科全球CEO钱伯斯第七.. · 北漂技术人90天求职纪实 · 2007年互联网大会 · 龙芯要做中国的“奔腾” · IPv6协议--拓展网络无.. · 国际文档格式标准开战 · 微软出价446亿美元收购.. |
· 贝恩资本携手华为22亿.. · Linux——从菜鸟到高手 · SOA 面向服务架构 · 2008年4月全国计算机等.. · 微软Forefront企业安全.. · 技术人求职简历完备手册 · 勇闯IT培训黑色围城 · 隐私保护技术探讨 |
|||
|
||||
| · SQL Server 2008/2005.. · SOA 面向服务架构 · SQL Server 2008/2005.. · iSCSI应用与发展 · RAID——磁盘阵列基础 · 中间件应用技术专题 · SQL Server入门到精通 · 病毒查杀专题 |
· 国际文档格式标准开战 · 路由器设置与口令恢复 · Linux防火墙 · 打造安全服务器 · SOA 面向服务架构 · PHP开发应用手册 · ADSL应用面面俱到 · 入侵防护系统(IPS)初探 |
|||
|
||||
| · iSCSI应用与发展 · 中间件应用技术专题 · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · iSCSI应用与发展 · RAID——磁盘阵列基础 · 病毒查杀专题 |
· 路由器设置与口令恢复 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · ADSL应用面面俱到 · ADSL应用面面俱到 · 反垃圾邮件技术应用 · PHP开发应用手册 · 中间件应用技术专题 |
|||