APP下载

基于MD5算法的自动取款机安全系统的设计与实现*

2012-08-10

长沙大学学报 2012年5期
关键词:取款机储户柜员

孟 敬

(广东交通职业技术学院,广东 广州 510650)

随着计算机技术的飞速发展,其应用方面已渗透到社会生活的各个领域.为了适应未来信息化社会的需要,而且随着社会的逐步繁荣昌盛,人们生活水平的不断提高,人民币的流通也就日渐增长,银行业务也就越来越繁忙,采用原有的人工管理已不能适应现行银行工作管理的要求[1,2].进入二十一世纪以后,自动取款机就应运而生,而且也逐步发展起来,渗透到各大银行.它以安全的性能、快捷方便的操作方法很快就受到了人们的青睐[3,4].本系统是模拟自动取款机系统,让客户了解自动取款机的功能,本系统的设计主要是设计安全性,因为用户的密码要受到保护,以防止被盗或者篡改,在设计安全性上用到MD5算法,当用户登录取钱或者修改密码时,用户的密码都是用MD5算法加密后存储在文件系统中,在页面上不会显示密码的明码,当用户输入用户名和密码进行登录时,系统会自动将密码用MD5算法进行计算得到MD5值,接着将此MD5值与文件系统中保存的MD5值进行比较,如果两个值相等,则说明密码正确,否则密码不正确.因此通过MD5算法系统,在不保存用户密码明码的情况也能够确定登录系统的用户的合法性.

1 总体设计

银行柜员使用柜员终端处理储户提交的储蓄事务.用户在开通储蓄账户后可以在自己的账户内存款及取款,也可以在自己的账号内开新的账户.当储户存款时,柜员负责将接收储户的现金或支票,并提交存款事务输进柜员终端;当储户取款时,柜员负责付给储户现金,并将取款事务输进柜员终端.柜员终端与银行计算机联网,银行计算机负责将柜员终端处理的事物进行处理,更新与维护储户账户平衡.

银行储户可以向银行申办现金兑换卡,使用现金兑换卡、通过ATM访问储户自己的账户,可以进行取款、查询、转账,在将来的系统扩展上可以实现存储等功能.现金兑换卡就是一种带有分行代码以及卡号信息的磁卡,其中分行代码能够唯一标识总行下属的一个分行,卡号能够唯一确定储户.通常,一张卡可以访问储户的若干个账户,但是不一定能访问该储户下的全部账户.每一张现金兑换卡都只属于一个储户所有,但是可以有多个副本,所以在设计的时候必须考虑到在ATM上可能同时使用同一张现金兑换卡的多个副本,因而系统应该设计为可以并发访问.

使用现金兑换卡的流程是,将现金兑换卡插入ATM,ATM与用户进行人机交互,并与中央计算机交换信息,以确认该卡是否是合法的现金兑换卡.当判断合法时,要求储户输入密码,ATM把密码信息及读取到的该卡的分行、卡号信息传输给中央处理计算机,请求中央处理计算机核对并处理这些信息,中央计算机根据分行信息确定处理此事务对应的分行,将信息提交给分行计算机,由分行计算机对卡号及密码信息进行验证,如果密码正确,储户就可以在ATM上进行取款、查询、转账等操作.当用户进行取款操作时,ATM要求用户输入取款额,当取款额不大于储户账户余额时,ATM在现金出口吐出现金,如用户需要账单则打印出账单交给用户,结束本次操作,用户可以继续进行取款或查询操作,直到退卡结束本次事务.如用户进行查询操作时,可以查询卡上余额等信息.当用户进行转账操作时,要求用户输入转出账号,并再次输入转出账号,当两次账号相同时,要求输入转账金额,当转账金额不大于账户余额时,转账成功.当储户输入的密码不正确时,可以重新输入,或者直接退卡.

设计的自动取款机系统的功能结构图,如图1所示.

2 主要功能模块详细设计

2.1 数据库的操作和加密安全算法

每次对数据的读取都要连接数据库和关闭数据库,每次设置的密码安全都要用到MD5算法,所以笔者将数据库的连接和关闭MD5算法分别写一个类.MD5算法的主要功能是在用数字签名软件对大容量的数据签署私人密钥之前进行“压缩”,转换成一种保密格式,这种转换即把一个任意长度的字节串变换成一定长的大整数.MD5算法原理可以描述为:MD5处理输入的信息以512位作为一个分组,每一个分组划分成32位的16个子分组,经过这些处理后,算法输出由4个32位分组组成,这4个32位的分组级联后生成一个128位散列值.

图1 自动取款机系统功能结构图

MD5算法的具体步骤为:(1)对信息进行填充,在信息的后面填充一个1和多个0,直到字节的长度对512求余的结果为448才停止填充0.经过填充后的信息被扩展到n*512+448,其中n为正整数.(2)在经过(1)的步骤处理后的结果后面附加一个填充之前的信息长度,该信息长度采用64位二进制的值表示.通过这两个步骤处理后的信息字节长度增加了64位,用算式表达为n*512+448+64,该算式可以简化为(n+1)*512,也就是说信息长度为512的整数倍.这样得到的结果能够满足后面设计中对信息长度的处理要求.

MD5算法中32位整数参数有四个,它们的值分别为:a=0x01234567,b =0x89abcdef,c=0xfedcba98,d =0x76543210,这四个值称之为链接变量.设置好这四个变量后,MD5算法便进入四轮物质循环运算.循环的次数是信息中512位信息分组的数目.

2.2 注册模块的设计

此模块实现用户注册功能.客户需要注册的用户名和密码,若客户注册的用户名已经存在则注册失败;注册成功,密码是以加密形式保存到数据库中.在注册用户时,调用MD5算法的 getMD5ofStr(String s)方法,代码如下[5]:

让用户注册的密码以加密的形式保存到数据库中,而且把用户的信息保存到一个session中,session.setAttribute("user",user).此模块设计图如图2所示.

2.3 登录模块的设计

用户登录时,再次调用MD5算法的getMD5ofStr(String s)方法,代码如下[6]:

图2 注册模块

然后验证用户名和密码是否正确,若正确跳转到success.jsp页面,若不正确跳转到login.jsp页面.

此模块实现用户登录,用户输入用户名和密码,若输入的用户名或者密码错误则无法登录,若输入的用户名及密码正确,则进入取款和转账的主功能模块.此模块设计图如图3所示.

图3 登录模块

2.4 取款模块的设计

此模块为实现取款功能,取款金额若比已存的金额大则取款失败,取款成功则提示“取款成功”.从帐号上扣除相应取款金额,并吐出现金.其功能图如图4所示.

图4 取款模块

2.5 转账模块设计

此模块实现从登录账户上转出不高于该账户上的金额到指定的账户上.转账金额若比已存的金额大则转账失败,转账成功则提示“转账成功”.转账模块设计图如图5所示.

图5 转账模块

2.6 修改密码模块的设计

此模块实现修改密码功能:当客户需要修改密码时,首先需要以正确的用户名及密码登录系统,进入主功能界面后再修改密码.修改密码需要用户两次输入新密码,若两次输入的密码不一样则修改失败,修改密码成功则提示“密码修改成功”.修改密码模块如图6所示.

图6 修改密码模块

3 结束语

通过前面对ATM系统的设计,可以了解自动取款机的功能和流程,而且可以了解到每个模块之间的联系和这些模块页面之间是怎么跳转的.每个页面的操作成功与否都会跳转不同的页面,也有相应的提示.该系统最重要的是让我们进一步了解到该系统是怎么处理安全性的.每个银行要做的最重要的事情就是让它的系统安全,在设计系统时也是把安全性放在第一位,处理密码安全时用到了MD5算法,在用户注册和登录时,所输入的密码都用到了MD5算法,即将用户输入的密码的明码通过MD5算法加密获得MD5密码值,将经过加密后的MD5值存储在文件系统中.即系统中并没有保存密码的明码,这样可以使用户密码更加安全,银行系统管理员也不能知道用户的密码,而且也加大了密码的破译难度,从而使得系统更加安全.

[1]刘欣愉.银行自助设备跨平台软件系统设计与实现[D].上海:华东师范大学硕士学位论文,2008.

[2]汤一平,何祖灵,金冶.基于全方位计算机视觉的ATM机智能监控[J].浙江工业大学学报,2010,(1):30-36.

[3]张冬泉.ATM业务及故障监控系统的研究与开发[J].计算机工程,2006,(21):232 -234.

[4]桂俊德.基于TOP-DOWN技术的自动取款机开发[J].CAD/CAM 与制造业信息化,2009,(12):65 -68.

[5]刘晓华,张健,周慧贞.JSP应用开发详解(第三版)[M].北京:电子工业出版社,2007.

[6]王蓓.中文版Dreamweaver CS3网页制作实用教程[M].北京:清华大学出版社,2009.

猜你喜欢

取款机储户柜员
“致病”的取款机
“沉睡卡”
笑一个吧(2则)(1)
社保综合柜员制的深化与创新——基于上海市的实践
银行存款所有权的归属
——储户还是银行
查不到信息不能成银行拒兑存款理由
柜员失误可容忍 管理漏洞不可纵
强化柜员文化建设 树立农发行良好形象
信用卡诈骗中银行承担责任的合同法律基础
自动取款机为何能取款