




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
关于VFP的加密 Vfp语言易学好用,其排序、检索速度之快,是VB和DELPHI所不及的,但其保密性差是也大家公认的。只要稍为懂一定数据库知识的人,一打开数据表,其内容便一目了然,且可任意更改,其保密性和安全性可想而知,这还只是其一。其二:随着UNFOXpro.exe和Refox7.exe等的出现,你辛辛苦苦编的程序,即使编译成EXE文件,一经UN或RE则你煞费苦心设置的版权符、验证关、口令、密码等都如同虚设。 那么Vfp的保密性差的弱点就没办法避免吗?NO !办法肯定有,这里就先谈谈“数据表的加密问题”,以下就是我的一点粗浅看法,请网友们踊跃讨论。 数据表加解密常见的有以下两种方式: 1、直接在磁盘上加解密,即在关闭数据表文件后,对已保存在磁盘上的数据表文件进行加密,在每次打开数据表文件前,先在磁盘上对数据表解密,然后再供 Vfp将其打开,其优点是加解密容易,一般程序员用Vfp提供的低级文件函数都能编出加解密程序;缺点是:在WIN的多任务环境下,很容易取得解密后的数据,另外一旦系统出错,还未来得及加密就重新启动系统,那保留在磁盘上的就是解密后的数据,对保密性能要求稍微高一些的程序员,一般不会采用此方式。 2、在内存中对数据表的字段进行加解密,这又可分两种: A、象远程续缘1999年第一期 第8个问题那样用ASCII码进行+、-、*、/运算加解密,但这种方法有个缺点即当加或乘时,其值容易大于255(FFH)即大于ASCII码的最大值,这时无法用CHR()换成字符保存,如对大于255的数据不加密,则解密时又会带来麻烦,即同是254,哪个是加密后的254,哪个是未加密的254?这也就是为何有人问汉字解密后会出现许多同音汉字的原因。B、完全利用Vfp3.0以上版本提供的位操作函数bitxor()进行加密,该加密方法是C语言及汇编语言常用的加密方法,其原理是将一字节的8位二进制数与另一个二进制数进行异或操作,如用6个以上密匙(口令)进行加密,则在不知其密匙的情况下,是很难解密的。它还有一个优点是加解密用同一模块,即一次执行是加密,再次执行为解密。以下是加解密例程( 注:调用该过程时,需加密的数据表已打开,且为当前工作区):Procedure jjmgc para Pass &Pass是密匙,设Pass=wjgwkj priv all mccd=len(Pass) &取Pass密匙长度 Sjbzds=fcou() Dime Jmsz(Sjbzds)Go top Scan Scat to Jmsz &读一条记录到数组For I=1 to SjbzdsIf type(Jmsz(i)=C &该字段是字符型吗Zdcd=len(trim(Jmsz(i) &取字段长度 mc1=1 For x=1 to Zdcd Jm1=asc(subs(Jmsz(I),x,1) &取字段中一个字节 jm2=asc(subs(Pass,mc1,1) &取Pass中一个字节 jmjg= chr(bitxor(jm1,jm2) &将JM1按JM2的值异或 Jmsz(I)=stuf(Jmsz(I),x,1,jmjg) &进行加密替换 mc1=iif(mc1mccd,1,mc1+1) &判断MC1是否大于mCCD Endf EndiEndf Gath from Jmsz &将加解密的数据,写入当前记录Ends retu 3、在内存中直接对整个数据表文件(.DBF)加解密,这也有两种方法: A、借助现成工具,犹如UCDOS SDK所提供的DBFKey()函数那样,与FOX无缝连接,不装入LoadSdk用USE是无法打开数据表的,其优点是显而易见的,但目前在WIN环境下还找不到这样的工具,而自己制作其难度大,一般程序员做不到。 B、用Vfp提供的低级文件函数,配合Create Curso -SQL 和 Insert -SQL 命令可实现类似UCDOS SDK所达到的功能,其原理是: 先用低级文件函数自定义一个文件头(或着叫文件格式,象BMP、DOC等都有自己的文件格式),在文件头中可包含:文件头长度、字段名、字段类型、字段长度、每条记录长度、密匙(口令字)等,接着将您的记录按文件头规定的格式加密后顺序写入文件中,由于文件格式是您自定义的,所以一般是无法打开读取的。 在使用时,用低级文件函数从您自定义的文件中先读取文件头的内容,读到字段名、字段类型、字段长度时,将其用Create Curso -SQL到新建的数据表中,读取记录后先解密,再用Insert -SQL 到刚建的数据表中,然后就可正常使用了,结束使用需存盘时再按上述方法写入文件。 该方法始终是再内存中进行的,故即使系统出错,重新启动系统也无妨。用这种方法加解密确实是在Vfp状态下比较好的办法,但可能对于没学过C语言或汇编的朋友,对文件格式等不理解,由于代码较长,无法列出,如网友们有兴趣,我可供天堂软件俱乐部发放。 以上只是我对Vfp数据保密性问题的探讨之一 数据表加解密,从中大家会看到,如果只对数据表加解密,而对执行加解密的程序代码不加密,或用Refox等软件将您的EXE文件反编译,那您的加密方法及密匙(口令字),就很容易暴露,其加密的可靠性就有问题,这就是我要讲的第二个问题: 如何加密和保护您的程序 如果您有何高见,请到焦点论坛发表,谢谢! Declare FindW
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 佛山科学技术学院《园林制图》2023-2024学年第二学期期末试卷
- 柳州城市职业学院《食品加工与保藏原理实验》2023-2024学年第二学期期末试卷
- 广东外语外贸大学《语文教学设计艺术》2023-2024学年第二学期期末试卷
- 中央司法警官学院《普通话语言与艺术》2023-2024学年第二学期期末试卷
- 中国地质大学(北京)《科技文献阅读与写作》2023-2024学年第二学期期末试卷
- 星海音乐学院《工程招投标与概预算》2023-2024学年第二学期期末试卷
- 辽宁轻工职业学院《“智者生存”-现代灾难救援理念与技术》2023-2024学年第二学期期末试卷
- 成都东软学院《软件系统分析与设计》2023-2024学年第二学期期末试卷
- 喀什职业技术学院《建筑材料》2023-2024学年第二学期期末试卷
- 重庆对外经贸学院《当代建筑》2023-2024学年第二学期期末试卷
- 汽车吊安全管理规定
- 基于triz创新方法的便携式雨伞
- 2023学年完整公开课版天一阁
- 童年歌词 一页直接打印版
- 辅导员的工作流程与工作方法
- 中医护理耳穴压豆课件
- 山皮石填筑施工方案
- 国家电网公司安全事故调查规程
- 钢结构管廊安装施工方案-
- LY/T 2083-2013全国营造林综合核查技术规程
- GB/T 32879-2016电动汽车更换用电池箱连接器通用技术要求
评论
0/150
提交评论