在VFP中如何实现密码保护?

yangzhiping1982 2006-04-17 06:11:57
我用密码表MMB(MMH,XM,MM)表示密码号,姓名,密码
可直接存放,稍微懂得VFP知识的人很容易窃取密码,如何保护密码???????/
...全文
231 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dfwxj 2006-04-18
  • 打赏
  • 举报
回复
没错,VFP的加密是防君子不防小人
TERRYYRRET 2006-04-18
  • 打赏
  • 举报
回复
同意楼上
Foxer 2006-04-18
  • 打赏
  • 举报
回复
不要保存密码,不管怎么转换,总是有办法揭开,建议采用SYS(2007)函数取得密码的校验码(取校验码时可附加其他字符串,这样更好一些),这种单向取值的方法除了穷举,是没有办法取得原始密码的,包括你自己也取不到。
proer9988 2006-04-18
  • 打赏
  • 举报
回复
有什么用 ??我反编译一下,直接修改就你的程序了! VFP中的所谓加密只能对付菜菜鸟!
十豆三 2006-04-18
  • 打赏
  • 举报
回复
自已用类似STRCONV函数转换一下。

但如查程序被反编译了就一样会转换回来。
dfwxj 2006-04-17
  • 打赏
  • 举报
回复
对密码串进行加密,“加密”也是防君子不防小人的东西,用多了就不灵了,把下面这个函数稍加修改后使用



FUNCTION CPW
PARA Lczip,Lcpass
Lcpass=Allt(Lcpass)
IF Lczip
Lcpass="JXWD"+Lcpass
LCNewPass=Chr((Len(Lcpass)-4)/32)+Chr((Len(Lcpass)-4)%32)
FOR iiii=1 To Len(Lcpass)
LCNewPass=LCNewPass+Chr(asc(SubStr(Lcpass,iiii,1))/32);
+Chr(asc(SubStr(Lcpass,iiii,1))%32)
ENDFOR
LCNewPass=PADR(LCNewPass,50,CHR(1))
ELSE
IF LEN(Lcpass)#50
RETURN "ERROR"
ENDIF
FOR iiii=1 TO 50
IF asc(SubStr(Lcpass,iiii,1))>=32
RETURN "ERROR"
ENDIF
ENDFOR
LCNewPass=""
FOR iiii=11 TO (asc(SubStr(Lcpass,1,1))*32+asc(SubStr(Lcpass,2,1)))*2+10
LCNewPass=LCNewPass+Chr(asc(SubStr(Lcpass,iiii,1))*32;
+asc(SubStr(Lcpass,iiii+1,1)))
iiii=iiii+1
ENDFOR
ENDIF
RETURN LCNewPass


2,727

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧