基于AES加密的银行客户信息管理系统设计与实现.docx
-
资源ID:96763902
资源大小:2.13MB
全文页数:40页
- 资源格式: DOCX
下载积分:25金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
基于AES加密的银行客户信息管理系统设计与实现.docx
摘 要随着世界的科技发展迅猛,人们的生活愈发地离不开网络,从一开始人们口中的“低头族”,到支持互联网发展的“互联网+”,说明了网络已经融入我们的生活中。经过一些内部的网络调查,企业或者个人之间造成损失的往往出现在一些网络安全导致个人的泄密,因此在通过网络进行信息传递的时候,也会面临着严峻的信息外泄的安全问题。对数据进行算法加密是一种数据重新打散重组达到对数据进行隐藏的常见手段,让未获得权限的用户无法获得其他客户的一些真实信息,也是有效防范网络威胁的方法之一。本次毕业设计的银行客户信息管理系统使用的是AES加密算法,论文具体介绍整个系统的设计与实现过程,使用AngularJS、Bootstrap开发前端界面,servlet处理逻辑层,Mysql进行数据存取,完成系统的设计与实现。关键词:AES;B/S结构 ;JFinal框架;MySQL AbstractWith the rapid development of science and technology in the world, more and more people can not be separated from the network. In the beginning, from the original "phubber" to support the development of the Internet "Internet +",it shows that the network has been integrated into our lives.After some investigations of internal network, the loss caused between enterprises or individuals often occurs in some network security which leading to personal leakage. So when data is transmitted through the network, it will also face serious security problems of information leakage at the same time. Encrypting information is a common way to break up and reorganize data to hide information, which makes unauthorized users unable to get some real information from other users, and is also one of the effective methods to prevent network threats.This graduation design of the bank customer information management system uses AES encryption algorithm, the paper specifically introduces the design and implementation process of the whole system, using AngularJS and Bootstrap to develop the front-end interface, Servlet processing logic layer, MySQL for data access, to complete the design and implementation of the system.Key words:AES; B / S structure; JFinal framework; MySQL目 录第一章 绪论11.1 研究动机与目的11.2现状研究11.3 主要研究工作21.4 论文结构介绍2第二章 系统开发相关技术42.1开发硬件与环境42.2开发工具42.2.1 Deamweaver CC42.2.2 Eclipse IDE42.3 技术介绍52.3.1 B/S架构52.3.2 JFinal + MVC后端框架52.3.3 MySQL数据库62.3.4 AngularJS + Bootstrap前端框架62.3.5 HTML62.4 AES加密算法72.4.1 AES加密算法简介72.4.2 AES加密算法背后的数学基础82.4.3 AES加密算法的Java实现92.4.4 AES加密安全性分析11第三章 系统分析与设计123.1 项目功能分析123.2 可行性分析123.2.1 适用可行性123.2.2 经济可行性123.2.3 安全可行性123.2.4 技术可行性133.2.5 总体设计可行性133.3 系统架构设计133.4 系统模块设计143.5 数据库设计173.5.1 数据库结构173.5.2 数据库安全183.5.3 数据表设计183.6 章节小结20第四章 系统实现、测试与维护214.1 系统用户214.2 系统实现214.2.1 前台系统界面214.2.2 后台系统界面264.2.3 部分功能代码展示294.3 软件安装与测试304.3.1 软件安装与配置304.3.2 软件测试314.3.3 异常处理334.4 章节小结33第五章 总结与展望345.1 工作总结345.2 展望34参 考 文 献35致 谢36广东东软学院本科生毕业设计(论文)第一章 绪论1.1 开发目的和意义网络使我们的生活更加便捷,与此同时也在加强社会的发展,使得经济发展也不断加快,虽然互联网给我们带来便捷舒适的生活,可是也带来一些网络安全的难题。因为网络计算机的互联性、多样性,使得网络计算机很容易受到各样的攻击,相信大家耳熟能详的电脑病毒以及黑客的攻击一直都干扰着网络安全,造成个人经济损失,严重的甚至干扰国家的安全,所以,为了提高网络上信息的安全性,网络安全的保护措施也刻不容缓,只有针对网络安全的各种威胁的威胁下采取必要必须的措施,才能保护网络安全,使得人们和国家的网络有一定的可靠性和安全性。进入了计算机的大数据时代,各个行业都推出自己的网上产品,方便用户实现线上购物和线上业务办理,相比于其他行业,银行业更加需要线上业务办理的操作,其作用是实现银行客户线上办理各种业务。鉴于自己所学的知识,把Java技术使用到这次网站设计当中,使用Java技术作为系统底层,加上前端和Mysql的配合,开发相对功能强大的Web银行客户信息管理系统应用。让广大客户能放心的使用银行系统进行自己的业务办理,减少在银行柜机的排队时间,而且鉴于今年(2020年)新冠肺炎疫情,国家要求不能出门、各行各业不能营业等原因,所以完善自身网上业务操作,减少人群接触,也是迫在眉睫。受限于是银行的应用,讲求更多的是对安全的考虑,因此,本次设计加入AES加密算法对银行客户的个人信息进行一定程度的隐藏。近些年,信息安全是企业所面对的重大挑战,网络信息化程度越来越高,信息的价值也越来越高,所以信息造成威胁的风险也越来越大,采取信息加密措施也在所难免。本次系统使用AES加密算法,AES是对称加密算法中最流行的算法之一,和DES分组密码加密相同使用了轮变换,可是AES不同的是没有使用Feistel结构,而是使用SP结构,AES相对其他对称加密算法(DES、3DES、IDEA)有实现速度高、抗密码分析强度的适用性、相应更好的安全性等特点【1】。1.2现状研究通过实地的线上线下的调查和查阅相关的资料,在我学习到的知识点来看,线上业务已经得到人们的注意,电子信息技术处理应用、电子金融管理应用是银行发展不能缺少的一个部分,随着我国的金融变革,各个银行都存在一定的竞争,不断往商业银行发展,所以作为银行的一大核心竞争力电子综合业务,对银行发展有着非常重要的作用,是银行新时代发展核心,往后银行业务电子化也是必然进程。现今,电子银行的存在的缺点是,电子银行业务系统功能划分不合理,功能繁多,使得客户使用繁琐,不敢使用网上银行,退而求次之,还是选择到银行当面办理业务。其次,还有电子银行业务功能的限制,未能完全能做到事无大小都能通过在电子银行系统操作完成,虽然考虑到风控、安全等问题,但是线上化是未来发展的需要。正如上述所说,我国的电子银行存在自动化程度相对低、数据信息处理不够系统、安全措施还不够完善等缺点,作为新时代的电子自动化银行系统,需要有一个管理为导向,信息集中统一、安全程度相对高的电子综合信息处理系统,才能真正适应自动化电子科技时代的发展。1.3 主要研究工作时代不断在发展,时间就像白驹过隙,我国十几年的时间中,互联网不断的在飞速发展,互联网技术也在不断的进步。互联网带给我们生活中息息相关的便利是显而易见的,习近平主席提出的“互联网+”发展策略鼓励当今的年轻一代积极投入计算机网络行业,给国家的发展贡献自己的一份力量,所以作为一名网络工程的学生,很荣幸能借此毕业设计的机会,完成一个基于AES加密的银行客户信息管理系统,这是一次锻炼也是一次很好的项目积累。 本次的毕业设计使用了很多学习过的知识,可谓是把大学所需都用在上面,涉及数据库JDBC操作、JSP前端设计、Jquery框架,底层框架等等知识,使得整个银行客户信息管理系统相对完善。 科技发展的影响下,信息技术已经普遍到社会的每一个角落,经过年月的发展以及变革,带给我们非常多的便利,发展到现在,很多网络公司的网络应用已经进入每个人的电脑和手机,例如阿里巴巴、百度、腾讯等等。了解和使用前沿的网络技术是开发应用的基础,也是开发本次设计的主要目的。1.4 论文结构介绍本论文章节介绍如下:第一章,绪论;该章节介绍的是银行客户信息管理系统的研究动机与目的、现状研究、主要研究工作以及整个设计的流程简介。第二章,系统开发相关技术;该章节是介绍本次设计的所有使用到了的硬件、搭建的环境、开发工具、框架模式等等设计使用到的东西,以及所用到的AES算法进行了介绍。第三章,系统分析与设计,该章节主要对项目的功能进行进一步剖析,对适用性、安全性、经济性、总体设计性进行分析对比,看是否符合开发需求,讲述整个系统的设计流程,包括架构、模块数据库的设计流程。第四章,基于AES加密的银行客户信息管理系统实现、测试以及维护,该章节讲述了界面展示、代码展示、系统测试等。第五章,总结与展望,完成系统的工作总结,以及本人对未来的热切期望。第二章 系统开发相关技术该章节介绍系统的开发硬件、开发环境以及开发工具,学校学习过很多的开发技术,但是每个应用的使用环境不一样,需要选择适合项目的模式进行开发,才能让开发过程达到事半功倍的效果。2.1 开发硬件与环境处理器:Intel 酷睿i7 6700HQ 2.6GHz;RAM:8.00GB;操作系统:Windows 10;浏览器:谷歌浏览器;数据库:mysql-5.6.5;服务器:Tomcat-8.5.50;Java环境:JDK-1.8.0_161;2.2 开发工具2.2.1 Dreamweaver CCDreamweaver的中文名称很酷,叫做“梦想编织者”,一款将网页的“设计”和网页“源代码”融为一体的编译器,可以点击设计窗口拆分使得源代码更加的精细化,使得开发人员可以按照自己需求定制开发个性化的界面,而且使用简单,各个层次的人员都能很好的上手,可以设计出Web站点以及应用程序网页界面,具有很强大的动态响应,同时可以插入Flash,CSS可视化使得设计渲染增强,有效提高网站开发的速度。2.2.2 Eclipse IDEEclipse的中文名称叫做“日食”,这个名称对于SUN公司是很大的挑衅,Eclipse是现在Java开发人员最喜爱使用的工具之一,它有强大的基于Java的开发源代码和扩展功能,对于每个Java开发人员,Eclipse是电脑必备的软件,它的设计思想很简单,所有皆是插件,底层代码封装着整个程序的核心,而其他所有的功能都是插件,从而拓展成其他的所有开发功能。2.3 技术介绍 2.3.1 B/S架构B/S结构是建立在广域网上的,即为Browser/Server的结构,浏览器对接服务器逻辑层去实现的一种架构。B/S架构相对于C/S架构(Client/Server架构,客户端/服务器架构)有着明显的适应范围,它不需要客户机和专门的网络环境以及硬件环境,只要硬件机配有操作系统和浏览器就可以使用,浏览即相当于C/S架构的客户端,只要有网络和浏览器就可以实现,而C/S架构一般要在专用网络,局域网通过专用的网络服务提供连接以及数据交换。出于安全的考虑,C/S架构面对的人群都是固定客户,对信息的控制能力相对B/S要强,因为B/S建立在局域网,所以安全性相对较为弱。对于程序架构,C/S架构因为更加的着重流程,所以可以对权限实现多层的效验,运行速度不受太大的影响,而B/S架构安全和访问速度有所限制,但是更加优化的前提下,B/S是未来发展趋势。MS的.Net系列Exchange-2000、BizTalk-2000等等,SUN公司和IBM公司推出JavaBean 构件技术,使得B/S架构越来越成熟。图2-1 B/S架构2.3.2 JFinal + MVC后端框架Jfinal框架是一款国产基于Web + ORM的极速开发框架,它的作者是詹波,Java架构师,曾经就任于搜格信息技术有限公司,现在是网校网的CTO【2】。该架构的设计核心目标就是轻量级、具有强大的功能、开发速度快、代码的量相对少,拥有Java语言的优势之余,还能有Python、ruby等的编程语言的高效率,为开发人员节省下很多的时间【3】。本次项目参考了Jfinal框架MVC框架的封装持久层架构,使用的基本架构和MVC框架不相伯仲,但是提高了其开发效率,而且还是能达到相对不错的效果。因为是基于MVC框架,使用Jfinal对代码进行一定程度的简化,所以本设计依然可见MVC的痕迹。那么,MVC架构就是Model、View和Controller三个部分组成,即模型、视图和控制器。2.3.3 MySQL数据库MySQL是被开发人员广泛使用的一个开放式源代码的数据库系统,主要的使用都是在对表格进行增删改查,而其实这样的功能,Excel就能够做到,也是最常见简单的数据表存储方式,可是Excel不能联网,所以它最大的缺点就是不能联网分享,有很大的很大的局限性【4】。MySQL在Web应用表现尤为出色,它可以为多种编程语言提供API,普及性相当高,多线程、多个用户特征,又拥有大型数据库,很多项目都会选择MySQL作为项目数据库,又因为是开源的缘故,在小型的项目以及开发研究都能有减少成本的优势,在开发者中有如日中天的地位。2.3.4 AngularJS + Bootstrap前端框架AngularJS是用作开发Web应用时使用的框架,有很好的的兼容性,数据绑定和大量的UI组件,使用大部分的主流浏览器,使得HTML有了动态,因为它的机制原因,开发人员不用通过操作DOM来展示数据。然而,Java Server Pages(简称JSP)是eclipse的组成部分之一,有着浓墨重彩的一笔,是一个属于企业级的战略性产品,在开发Web应用的时候,其提供的技术和后端的Servlet一样,其实本质上来说,JSP就是一个Servlet,可以进行前端的逻辑判断。其流程就是把用户的请求,到JSP然后再渲染一个HTML,所以项目中会有各种的JSP文件。所以AngularJS这个新技术的加入,使用内置的Ajax就可使用HTML文件调用后台API,即可实现HTML的动态展示,本次毕设中使用AngularJS + Bootstrap + HTML的模式进行前端的设计【5-6】。2.3.5 HTMLHypertext Markup Language(简称HTML)即是超文本标识语言,超文本其实就是界面不单单只是链接和文字的元素,它还能够包括图形、音乐、视频等不是文体形式出现的其他元素,在SGML当中,HTML只是一个小的分支,但是获得SGML研发机会,能达到很大程度的研发【7】。我们生活当中的大部分网页都是使用HTML进行编写,由于编写简单而且方便,没有什么特别复杂的函数,所以在实际中相对容易,但是要想获得一个精美的界面,则需要JS和CSS来配合设计。其次,HTML的语言具有很强的跨平台能力,使得它能够广泛地使用在网页界面开发。2.4 AES加密算法2.4.1 AES加密算法简介Advanced Encryption Standard是一种最为常见的对称加密算法,美利坚合众国政府在97年的9月12日发布替代DES算法的活动,在几轮比赛之后,只有15种算法进了决赛圈,而经过应用验证,最后选了AES加密算法,是因为安全、效率、性能、灵动性都比较好。何为对称加密算法,即加密以及解密都是使用相同的密钥,我们常使用的微信小程序即是使用的AES加密,它能有效地把信息隐藏,使得未获得授权的用户不能获取到原本信息的一种网络安全防范措施,只有和加密方使用相同的密钥对信息进行解密方才可以获得授权真实的信息,下面是AES加密算法的作用过程图(图2-2)。图2-2 AES加密算法作用过程图明文P:没有经过AES加密的用户信息。密钥K:作为加密以及解密中的协调工具,不会直接放在网络上进行传输,只作用于发送方和接收方使用,不然会造成密钥的泄露,对客户个人信息造成威胁,通常开发人员会将密钥使用非对称的加密算法进行加密,然后再发送给需求方,抑或是直接当面进行密钥传递,保证信息不被泄露,一定程度较好地保护了客户的隐私。AES加密函数:若假设加密的函数为E,即函数应为C = E(K,P),P即为明文,K即为密钥,C即为密文,所以在加密的时候,通过输入明文P以及密钥K,使用函数E即可加密输出密文C。密文C:即经过了AES加密函数E处理输出的字符串数据。AES解密函数:若假设解密的函数为D,即函数应为P = D (K,C),C即为密文,K即为密钥,P即为明文,所以在解密的时候,通过输入密文C以及密钥K,使用函数D即可解密输出明文P。AES算法使用的轮变换,数据分组的长度是固定128位的,但是它的密钥长度是可以改变的,最常见的三种是AES-128,AES-192以及AES-256,下图(表1.1)是有关该三类方案的一些解析。表2.1 AES加密算法三类方案表AES加密算法三类方案表AES算法分组长度密钥长度加密轮数AES-1284410AES-1924612AES-2564814本次毕业设计使用的是AES-128的方案,即是加密轮数10轮,密钥长度为4×32位比特宇,分组长度也为44×32位比特宇。2.4.2 AES加密算法背后的数学基础Rijndael算法是字节与4字节定义的,按照字节运算,AES加密的基础域就是有限域GF(28),表示特征是2,其具有28元素的有限域,我们也可以把一个字符看做是有限域里面的一个元素,字节运算就是在域的集合里面进行运算,而且运算结果也是在这个域集合之中【8-9】。此处(图2-4)表示为系数在0,1的二进制多行式的集合:b7X7 + b6X6 + b5X5 + b4X4 + b3X3 + b2X2 + b1X + b0 有限域里面的一个多项式和这种随便的8位二级制数建立对应关系。(1)加法运算:GF(28)上两个元素的和依然是一个次数不超过7的多项式,它的系数是这两个元素系数的模2加。(2)乘法运算:GF(28)定义一个x乘法运算,其定义如下图(图2-6)。X·b(x)=b7X8 +b6X7+ b5X6 + b4X5 + b3X4 + b2X3 + b1X2 + b0Xb(mod m(X) (3)多项式的加法:两个元素的按位模2加。(4)多项式的乘法:设A与C为两个字,A(X)和C(X)是它们的多项式,所以根据AES加密定义A与C的乘积为B,其表达式为:C0C1C2C3B0B1B2B3A0A1A2A3A1A2A3A0A2A3A0A1A3A0A1A2B(X)=A(X)C(X) mod X4+1=2.4.3 AES加密算法的Java实现AES作为一个对称的加密算法,它的解密加密都是使用一个密钥,而且它是一样的,所以第一步,需要生成一个密钥,Java代码实现如下。=代码开始= public static Key createKey() try KeyGenerator keyGenerator;keyGenerator = KeyGenerator.getInstance("AES");keyGenerator.init(128);SecretKey secretKey = keyGenerator.generateKey();byte keyBytes = secretKey.getEncoded();Key key = new SecretKeySpec(keyBytes, "AES");return key; catch (NoSuchAlgorithmException e) e.printStackTrace();return null; =代码结束=加密过程需要创建然后产生一个初始化密码器对内容加密,然后返回一个字符串,具体加密代码如下。=代码开始=public static byte jdkAES(String context, Key key) try Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");cipher.init(cipher.ENCRYPT_MODE, key);byte result = cipher.doFinal(context.getBytes(); System.out.println("jdk aes:" + Base64.encode(result); return result; catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException | IllegalBlockSizeException| BadPaddingException e) e.printStackTrace();return null;=代码结束=解密是将其加密过后的字符串,放入然后反纺成为byte的数组,将加密了的字符串内容进行解密,获得明文,JAVA解密实现如下。=代码开始=public static void decrypt(byte result, Key key) Cipher cipher;try cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");cipher.init(Cipher.DECRYPT_MODE, key);result = cipher.doFinal(result); catch (NoSuchAlgorithmException e) e.printStackTrace(); catch (NoSuchPaddingException e) e.printStackTrace(); catch (InvalidKeyException e) e.printStackTrace(); catch (IllegalBlockSizeException e) e.printStackTrace(); catch (BadPaddingException e) e.printStackTrace(); =代码结束=2.4.4 AES加密安全性分析加密算法是保障信息不被泄露,达到对数据的隐藏,而且作为DES以及MD5的取替品AES和DES的区别简单的说,如果破解DES需要1秒钟,那么破解AES需要1490000亿年,所以其算法有很强的抗破解能力,当然这是保证密钥不泄露的情况。和其他典型的加密算法作对比,AES优势也很明显,以下为调查数据表。表2.2 典型加密算法分析表典型加密算法分析表编号加密算法类别加密算法实现速度适用性安全对比1对称加密算法DES慢只能用于安全系数不太高的场合中不再安全3DES比较慢IDEA高对密钥要求不高的情况下容易被攻破AES高有抗密码分析的强度具有相对安全的安全性2非对称加密算法RSA慢各种安全或认证领域安全 由此,可知道AES相对来说,安全性较高,实现速度快,所以本次毕业设计选用AES算法作为加密算法。第三章 系统需求分析3.1 项目功能分析作为一个互联网的产物,本质上是把传统的银行建筑物变成了Web服务器,地址变成了网上的网址,把柜员与柜员机搬到了服务器上,让虚拟的功能取代人工,客户能够从网上办理自己的事务,大大方便人们的事务办理效率,而且不受时间和地域限制,只要有带浏览器的硬件,有信号网络,就可以做到和银行的连接,随时都可以通过网络和银行“面对面”办理一切的金融业务,例如存钱、取款、购买债券、办理信用卡等。当然以上所说的一切操作,都得在安全的前提下。因此需要实现一个对客户信息进行一定程度隐藏而且有效的加密操作,使得银行和客户能够安全宝保密的进行业务操作,所以,本次系统使用AES加密能够在客户输入的客户信息进行加密,是一种保证安全的有效措施。3.2 可行性分析3.2.1 适用可行性人类无论在茹毛饮血的时代,还是在如今的科技时代,都在让生活变得更加的便捷,茹毛饮血的时代我们学会使用火和利器,而在科技时代,我们应该打破传统的模式,实现互联事务办理,社会的日益发展,人口越来越密集,所以银行业务更加需要便捷, 考虑便捷之余,还需要兼顾安全的原则,所以基于AES加密的银行客户信息管理系统是适用性可行的。3.2.2 经济可行性开发线上更加安全的银行信息管理系统是一个不同于传统理念的模式,所以在考虑设计成本、物质成本、施工成本的时候,其实费用并不是很高,一般的需求方都可以承担,但因为系统能够减少人工管理,从而提高效率,其实后期只需要一部分后台维护的成本,方便了客户使用,所以在经济上是可行的。3.2.3 安全可行性银行系统必须要讲求安全性以及可靠性,要具有承担客户信息安全风险的责任,所以要在信息做到保密,系统开发基于AES加密,所以客户的信息都是通过AES加密算法的加密,能够有很好的隐秘性,提高了客户个人信息的安全性。3.2.4 技术可行性该银行客户信息管理系统看着简单,其实有很多东西需要考虑到,不然中间发现项目设计不周全,会有很多不必要的开发麻烦,在设计这个系统的时候,使用了B/S的结构模式,是整个系统的基础结构,在框架方面本质使用的是MVC框架,也加上了Jfinal框架,前端使用AngularJS + Bootstrap + HTML的模式,后端类似Servlet的封装持久层,所以在技术上该银行客户信息管理系统也是可行的。3.2.5 总体设计可行性为了该银行客户信息管理系统更加方便客户使用,所以采用的是B/S的模式,主要就是把后台数据存在服务器,然后视图层以网页展现给银行客户,所以在适用性方面是很强的,只要客户有联网的前提条件,就可以进行系统服务,不但可以减少开发工作,还能不受地域影响,同时B/S模式还可以增加该系统的后期的维护方便性。该银行客户信息管理系统的功能界面有用户登录、用户注册、存款及贷款、借记卡服务、信用卡申请、转账业务、银行余额查询、生活交费、个人中心、管理员后台、理财业务等功能界面。在界面的设计上,也是按照简洁、大方、便捷的原则,让用户能简单使用并且能舒服使用,使用界面不会烦躁,所以系统中的图片都是使用高清图片经过Photoshop处理【10】。兼顾安全和以上所说,才尽可能做出一个需求方以及系统使用的用户满意的相对成熟的系统,总体设计也是具有可行性。3.3 系统架构设计此系统的B/S逻辑架构由三个部分组成,分别是表现层、业务逻辑层和数据访问层,由于JFinal架构是基于MVC架构的技术开发架构,MVC作用于业务逻辑层,所以也是按照MVC架构的三个部分,分别是视图层(View)、控制层(Controller)、模型层(Model)。 (1)表现层:该层面对客户,主要是页面部分,负责显示数据,接收用户的数据,使用Web应用开发,使用的展示方式也是Web的展示方式,例如HTML、JSP等。 (2)业务逻辑层:主要是想应前端客户返回的请求,对数据进行处理,然后再对数据层进行操作,返回响应请求到表现层,那么以MVC作为业务逻辑层框架,MVC功能也分为三个层:1、视图层(View):把数据展示给客户看,用户的交互界面,视图层只可以访问模型层(Model)数据,但是不能对数据进行任何操作,当模型层(Model)被操作,视图层(View)会展现被修改数据,它只能做到展现数据作用。2、控制层(Controller):可以理解为一个系统的容器,它接收所有的用户请求操作。然后把数据输入并调用(Model),例如:HTTP请求传到Servlet,然后调用JavaBean,再然后进行MySQL进行数据访问,然后将模型层(Model)的信息传回视图层(View)。3、模型层(Model):主要负责业务逻辑,提供数据库访问和可以复用的组件,数据库的交互,可以多线程使用,一个模型层(Model)对多个视图层(View),大大减少代码的重复,而且获得数据是没有格式的,在企业项目可以用来开发接口。(3)数据访问层:原始数据的操作层,对原始数据进行操作,具体的功能是为表现层以及业务逻辑层提供需要的数据服务。 图3-1 系统逻辑结构图3.4 系统模块设计在Web系统设计中,需要提高所开发时的效率,需要使用模块化的理念来进行思考。对于功能重叠的可以进行模块归类,使得整体的设计更加整洁,在开发过程遇到相同部分可以归类到已完成的模块中,根据对银行客户信息管理系统的功能分析,获得下面的五个基本功能模块:系统管理员模块:该模块是对于用户的权限的管理,系统管理员可以新增新的系统管理员,能对银行户进行权限操作,银行客户登录不了管理员系统,只能进行前台模块的操作,后台管理员对银行客户的申请进行审批。个人信息管理模块:该模块包括了客户个人信息和银行账户信息两个下级模块,客户能够进行自己信息的更改,也能够操作其他银行业务,例如银行卡号、汇款记录等数据的查询。个人服务模块:该模块包含了用户登录后的借记卡申请、信用卡申请、自主挂失、个人客户星级服务等的操作,是用户对银行的申请和自主操作的功能,用户操作然后后台管理员对客户的申请进行审核。金融业务模块:该模块主要是用户使用进入服务,例如贷款等的金融服务,主要是用户的金融服务,用户提交了申请,管理员对申请进行审核。 非金融服务模块:该模块是用户使用银行系统进行的其他服务操作,进入生活界面可以进行水电费缴纳、话费充值、燃气费、党费等生活费用。图3-2 系统功能模块图该银行系统划分两个系统,分别是前台系统以及后台系统,前台系统由四大模块组成,分别是个人服务模块、金融业务模块、个人信息管理模块、非金融业务模块。然而后台系统则由系统管理模块组成。下图是前台模块详细功能表:表3.1 前台模块详细功能表前台模块详细功能表功能详细描述个人信息管理模块个人信息普通用户的个人信息管理,例如修改地址、密码、邮箱我的账户查看用户名下的所有卡和存折个人服务模块自主挂失申请挂失用户名下的卡和存折存款与贷款向用户名下的卡或存折存入钱款借记卡申请以用户的身份申请借记卡信用卡申请以用户的身份申请信用卡转账与汇款向他人的银行卡进行转账或汇款金融业务模块投资理财购买银行的理财产品贷款申请以用户的身份申请贷款非金融业务模块个人星级服务用户服务积分,可兑换礼品生活缴费缴纳水电费、电话费、燃气费、党费等生活费用下图是后台模块详细功能表:表3.2 后台模块详细功能表后台模块详细功能表功能详细描述系统管理员模块系统管理查看用户列表、管理员列表,新增管理员用户卡管理借记卡、信用卡的申请审核,用户卡的管理保险系统挂失银行卡的申请审核,操作已冻结的银行卡3.5 数据库设计数据库设计不只是分析设计表是否合理,更要关注的是需要存到数据库的数据是否是实用数据。在数据存储的方面,通过设计不一样的数据表来存储不同的信息,而且设计数据表的时候,要关注表和表之间交互性,通过一个值在其他表查询出需要的数据并展现出来。在设计表的方面,要有严谨的命名方式规范,能保证获取数据和完美运行。3.5.1 数据库结构本系统是银行系统,实现起来更加严谨,要根据合理的关系去存储数据,也要有适当的选择方法,提高数据调取效率,对收集的数据分类,明确数据实体的联系,构成E-R图。图3-3 数据库E-R图3.5.2 数据库安全为确