文档库 最新最全的文档下载
当前位置:文档库 › 浅谈在VF中的新型密码加密方法

浅谈在VF中的新型密码加密方法

薯霎Ⅵ渊壤霾。

浅谈在V F巾的新型密码加密方法

茆汉国

(南京工程学院财务处江苏南京211167)

【摘要]在V FP编程中,如何给不同环境下的程序及数据库文件加密,从而促进其应用软件的商业化。

【关键词]vF程序加密

中图分类号:TP3文献标识码:^文章编号:1671—7597(2008)0710050—01

传统密码的加密方法,是指在D ba se、F O)(B A sE、FO)(BA s E+、F0)【PR02.x环境下开发的数据库管理系统中使用的方法。传统加密方法种类甚多,但是笔者认为由于D ba se、Fo xB A sE、Fo)【B A SE+、FoxPR02.x编写的程序都是伪编译,很容易被反编译,因此密码也很容易被破解。因此,笔者在这里专门谈谈新型密码的加密方法。

在此方法中其密码值可由设置自行改变,这种方法一般由文件保存密码,且密码经过加密运算。密码的加密算运算方法很多,常用的有:转换法、位移法、时间法、随机法等。

转换法,就是把输入的密码经过转换计算,转换成保存密码,取密码时,再经过逆运算,把密码还原。

不定时密码也是可变密码的一种,是指密码的出现是以随机方式来询问用户。

下面具体介绍~种笔者基VFP6.O写的密码设定方法。其特点是:具有使用登记功能:每人一个密码,并可随时更换;密码经加密运算,不易被破解。

基本思路如下:首先建立两个数据表(t a bl e),一个用来存放口令及对应的用户(称为“口令表”),另一个存放用户登录使用情况(称为“登录表”)。再建立两个窗口表单(f o硼),一个用来检查口令,另一个用来修改口令。接下来定义两个过程(pr oc edu r e),一个用来给口令加密(“加密过程”),另一个用来给【|令解密(“解密过程”)。这个“加密过程”,是把密码经加密运算后存入口令表,而“解密过程”实际上是把输入的密码经加密运算后与口令表内的密码进行比较,并不是解密。为了使密码输入时不被人看见,要对密码输入的文字框的属性做如下工作:进D A T A属性栏,把I nput M ask属性改为:xxx xxx,进L AY叫T属性栏,Passwor dch ar的属性改为:“}”,这样,输入的密码就不会被别人发现。(在FO X B A SE F0硒A sE +,FO)【PR02.x中,常用设置背景颜色与输入密码字符颜色相同的办法来防止别人看见。)

“解密过程”代码如下:

par am et er pas s w or d

pas2~

nl=asc(s ubs t r(nam e,l,1))

&&取姓名的第一个拼音字母,换算成A sC I I码

n2=a sc(subs t r(nam,2,1))&&作为加密的键值

n3=asc(subst r(n∞e,3,1))

n=i nt((nl+n2+n3)/3)

f or i=l t o l en(t r i m(pa ssw or d))

&&使用B I TxO R()函数对密码进行解密

t em pchr=bi t xor(asc(substr(passw or d,i,1)),n)

pas=pas十chr(t eⅢpchr)

endf or

10cat e f or kl k.us e r—i d=na m e

&&与口令表内的与姓名相对应的口令进行比较

i f(kl k.key<>pa s)∞d(pas sw or d<>’hg’)

re s u l t=.f.

el s e

re sul t:.t.

endi f

r et uH l r es ul t

B I T xO R()函数是vf p特有的函数,它将函数的两个参数转换成二进制数,并且执行“与”操作,返回一个十进制的结果。用它来进行加密运算,保密性强。加上密码键值n(取姓名的第一个拼音字母,经求和,再取平均值,再取整运算,换算成A scI I码),得到每人一个的密码。

该“过程”的定义方法如下:在定义检查密码的窗口(f o rⅢ)的编辑状态下,用鼠标点菜f o加,选“n ew m et h od”,键“过程”名。然后双击正在编辑的窗口(f orⅢ),然后进入’过程。的编辑状态,写入如上代码。加密过程是解密过程的逆运算,代码如下:

par am et er pas s们r d

pas=~

f or i=1t o l en(t r i m(pass∞r d))

n1=asc(s ubs t r(n∞e,1,1))

n2=as c(s ubs t r(na皿e。2,1))

n3=asc(subst r(nam e,3,1))

n=i nt((n1+n2+n3)/3)

t em pch r=bi t xor(as c(s ubs t r(pas s霄or d,i,1)),n)

pas2pas+ch r(t em pc hr)

end f or

’r epl ac e key w i t h pas

检查密码的思路是:先到输入姓名的文字框内取姓名,再到口令表内查找姓名,如果找不到姓名,返回消息窗口“您不是指定用户,请与系统管理员联系!”,系统退出;如果找到了用户姓名,则继续进行。把输入的口令和姓名送到解密“过程”中进行运算,解密“过程。将其解密,并与口令表内的数据进行比较,如果不正确,开始计数,要求重新输入密码,三次不正确,退出系统。如果正确。释放当前窗口,进入系统。

参考文献:

[1]王义,硬件加密系统研究与应用[D],北京邮电大学,2006年.

[2]徐海涛,文件加密我轻松《私人磁盘》试用手记[J],微电脑世界2005年04期.

(上接第25页)

参考文献:

[1]狄全熙等.模糊自适应PI D控制器在液压伺服系统的应用[J].电气技术与自动化,2007,36(4):107一108.

[3]曾喜娟。模糊自适应PID控制器的设计[J].黎明职业大学学报,2007,(3):3卜33.

[3]何克忠.计算机控制系统[M].北京:清华大学出版社。1995.

[4]马银辉.基于M A T L A B的PI D参自调整的模糊控制器的设计与应用仿真口臣圃[J].发电设备,2005,(2):112—113.

作者简介:

孟学涛,男,湖北天门人,在读硕士研究生,研究方向:计算机控制技术;李涛,男,四川资阳人,在读硕士研究生,研究向为计算机监控技术;张友能,男,安徽淮南人,在读硕士研究生,研究向为计算机应用技术。

相关文档