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

yangzhiping1982 2006-04-17 06:11:57
我用密码表MMB(MMH,XM,MM)表示密码号,姓名,密码
可直接存放,稍微懂得VFP知识的人很容易窃取密码,如何保护密码???????/
...全文
195 6 点赞 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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


  • 打赏
  • 举报
回复
相关推荐
发帖
VFP
加入

2500

社区成员

VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
申请成为版主
帖子事件
创建了帖子
2006-04-17 06:11
社区公告
暂无公告