随着我国信息化建设的飞速发展,以网络和数据库技术为基础的信息处理系统应用正逐步深入。但是,由于技术限制和软件缺陷等因素,系统的正常运行可能会受到来自不同方面的安全威胁尤其是一些黑客总是凭借自己的破密技术非法登录系统,对信息系统造成不可估量的破坏,因而,系统的登录加密技术就显得尤为重要,所以我们必须采用一种行之有效的方法来保证系统登录的安全性。

系统登录如何加密

一、传统的系统加密方式及其弊端

目前,在大多数开发的应用系统中,最常用的方式就是使用口令实现对系统操作权限的访问控制。实现的方法就是在进入系统时提示操作者输入一个字符串口令。这种口令的设置方法是将固定的口令密码写在程序代码中,在系统开始运行时,要求操作者输入该密码,如果密码正确,方可进入,否则,系统是不能让操作者使用的。这种传统加密方式的缺点是密码固定,而且整个系统只有一个密码。不会随机改变,而且容易被别人破解。所以,这种传统的加密方式存在极大的安全隐患。

二、一种系统新加密方法的提出

在设计系统时,也有的程序设计者针对传统的系统加密方式采用了一种较为安全的加密方式,即将用户在进入系统时输入的口令通过加密转换为一种称为加密伪码的数据,存储在数据库中,但这种方法的密码和伪码仍有明显的对应关系,容易被破解。

针对这种情况,提出了一种在我们VisualFoxPro中用随机伪密码存储在数据库中的方法,实现了简单可靠的系统加密。这种方法的特点是实现简单,加密可靠,不易破解口。

1、系统新加密方法的原理

它的原理是可将1个1~7位的用户密码转换为20位的随机伪密码,且每次重新设定密码时所产生的伪码都不相同。通过变换生成的20位伪码没有任何规律性,即使从数据库中擦除伪码也无法进入系统,从而实现了可靠的密码权限控制。

2、生成随机的伪密码

从用户密码到存库的随机伪码之间的变换由2个函数完成,即加密函数和解密函数。加密函数的思想是对用户密码(真码)进行复杂化、隐蔽化处理,也就是将真码淹没在20位伪码中,加密函数如下:

系统登录如何加密

若真码为1234567,则伪码为6491530215286819—3982,无论真码是1位还是多位,伪码总是具有同样的不确定性和复杂性,所以若想通过简化真码来分析伪码是不可能的。

3、解码

解码函数是将数据库中存放的伪码转换成原用户密码,其代码如下:

系统登录如何加密

由于提交的系统全是编辑的,非法者是无法得到密码转换函数中的信息的,所以解密方法不易被发现。

三、用户权限控制的实现

对一个包含多种业务操作的应用系统,由于业务的要求,常需要限制不同操作者的业务操作范围,在VFP中,可以建立一个权限数据表,表中有多个字段,分别用于存储每个操作者的代号、姓名、伪密码等信息,如下表所示。

系统登录如何加密

系统主表单上的多个业务模块由多个按钮来实现启动,那么在系统主表单的【确定】按钮CLICK方法程序中添加一些判断代码,就可以实现系统的口令和操作权限控制。输入工号和口令后,按【确定】,CLICK中的代码则首先根据输入的工号,对权限数据表中所对应记录的口令伪码进行解码,得出的真码与输人口令一致方可进入系统。为了在系统一启动就打开权限数据表,故要将权限表添加到主表单的数据环境中。不同工号的操作员在进入系统后可以白行修改自己的密码,而管理员无法知道操作员的密码,只能进行擦除,这一点更加提高了操作员密码的安全性。

小知识之visual foxpro:

visual foxpro简称VFP,同VB、DELPHI一样都是程序开发工具,VFP由于自带免费的DBF格式的数据库,在国内曾经是非常流行的开发语言,现在许多单位的MIS系统都是用VFP开发的。