安全选课系统的设计与实现

2018-12-18 10:16范洁李冬冬刘宇栋王可敬
电脑知识与技术 2018年26期
关键词:数据库

范洁 李冬冬 刘宇栋 王可敬

摘要:选课系统在各大高校中的应用非常普遍,选课数据大多明文存储,存在数据泄露的风险。基于Client/Server架构模型设计并实现了一款安全的选课系统软件,在客户端运用AES算法和BASE64编码相结合的技术保证了用户数据的机密性,采用MySQL作为数据库,采用Java JDBC接口来实现客户端和后台数据库服务器的连接。该系统实现了选课过程中所产生数据的安全存储和安全传输。

关键词:选课系统;AES算法;BASE64编码;安全存储;数据库

中图分类号:TP309 文献标识码:A 文章编号:1009-3044(2018)26-0056-03

Abstract: Course selection system is widely used in universities,most of the course selection data is stored in plaintext, the risk of data leakage exist. Based on the Client/Server architecture model, the safe course selection system software was designed and implemented. In the client program, the confidentiality of users data was guaranteed by the Combined using of AES cipher algorithm and BASE64 coding, MySQL was used as the database and the Java JDBC interface was used to establish the connection between the client program and backstage database server. The system realized the secure storage and secure transmission of data which generated in the course selecting process.

Key words:course selection system; AES algorithm; BASE64 coding; secure storage; database

1 背景

目前,我国各高校教务管理基本实现信息化,教学管理模式依托计算机网络也在不断的发展变化。利用高校成熟的校园网建立一套安全的网上选课系统,可以有效提升学校的教育服务质量。各高校目前使用的选课系统多为委托第三方开发,能满足基本的教学需要,但是没有考虑到选课系统在使用过程中面临的数据安全存储和安全传输等问题。该文在充分调研高校选课系统业务需求的基础上,提出了高校选课系统的安全需求,并采用对称加密技术、BASE64编码技术设计并实现了安全选课系统,实现了数据的安全存储和安全传输。

2 相关安全技术

2.1 AES 算法

AES(Advanced Encryption Standard)算法是美国国家标准技术研究所提出的一种对称加密算法,具有安全、高效、易用等优点。AES为分组密码,把明文分成若干长度相等的组,每次加密一组数据,直到加密完整个明文。在AES标准规范中,分组长度只能是128位即每个分组为16个字节。密钥的长度可以使用128位、192位或256位。密钥的长度不同,推荐的加密轮数也不同[1]。

该文选择AES-128对选课系统中录入和更新的数据进行加密,使用的密钥长度为128位,加密轮数为10轮。AES的加密公式为C = E(K,P),在加密函数E中,会执行一个轮函数,并且执行10次这个轮函数,这个轮函数的前9次执行的操作是一样的,只有第10次有所不同。即一个明文分组会被加密10轮。

2.2 BASE64 编码

对于任意的二进制文件,可使用Base64编码转换,编码后任意格式的字节流被编码为可打印的ASCII字符,其基本原理是连续的3个输入字节映射为4个6位值输出,并且用可打印的字符来表示这些6位值。6位组的二进制代码共有64种不同的值,从0~63。用A表示0,用B表示1,即0~25的数字可用大写字母A~Z表示,26~51的数字可用小写字母a~z表示,52至61的数字用数字0~9表示,最后用+表示62,用/表示63。=作为填充字符[4]。该文选择Base64编码对加密后的数据进行编码转换后,再进行网络传输和存储。

3 安全选课系统的设计

3.1 系统整体设计

C/S架构模式的安全选课系统是为了满足学生用户,教师用户和管理员用户这三类人的工作學习需求。

1) 学生用户是安全选课系统的主要需求群体,需要完成选课,查课、退课等操作。

2) 教师用户是安全选课系统的另一大需求群体,需要能查询自己所教授课程的信息、课程的选课情况,实现对学生成绩的管理等。

3) 管理员用户是整个系统中功能最多的用户,负责管理学生信息、课程信息、教师信息。需要实现对学生信息、教师信息、课程信息的增加、删除、修改、查询等相关的操作,负责对选课系统使用的密钥进行更新。

安全学生选课系统划分为三个子系统,学生子系统、教师子系统和管理员子系统,整体设计如图1所示:

图1 系统总体框架图

3.2 系统的数据库设计

数据库的设计是安全学生选课系统设计的重要组成部分。根据选课系统的角色划分,确定的实体有学生、课程、教师。该文选择MySQL作为系统数据库,设计的相关数据表有教师信息表 teacher、学生信息表student、课程信息表 kecheng、学生选课信息表 xuanke、管理员信息表 manager。下面给出学生信息表和课程信息表的设计,如图表1和表2所示。

3.3 系统的安全性设计

为了保障用户在使用选课系统时所产生数据的安全传输和在数据库中的安全存储,该文设计的安全选课系统采用AES对称加密和BASE64编码相结合的方式对用户产生的数据进行加密和编码转换以保证数据的机密性。首先由客户端的管理员用户随机产生AES算法所需的对称密钥K,并将其序列化后直接写入本地的密钥文件存储。然后再利用这个随机产生的密钥K加密用户产生的数据,加密完成后对加密结果进行Base64密码转换。数据加密具体流程和解密如图2所示。密钥的安全存储和更新对于数据的加密和解密至关重要,需要用户妥善保管密钥,密钥更新在下一节具体描述。

4 安全选课系统的实现

安全选课系统的实现部分具体划分为登录模块、系统管理员子系统、学生子系统、教师子系统。其中登录模块供三个子系统调用验证用户身份。系统管理员子系统包括学生管理模块、教师管理模块、课程管理模块、学生成绩管理模块、密钥更新模块。学生子系统包括个人信息维护模块和选课模块。教师子系统包括查询选课学生名单和成绩管理模块。此外为了实现数据的安全存储,还需要一个安全算法模块。下面对安全算法模块、登录模块、课程管理模块和密钥更新模块的实现做详细介绍。

4.1 安全算法模块

该文设计并实现的是一款安全的选课系统软件,在设计之初就充分考虑到相关的安全性问题。安全选课系统采用MySQL数据库,实现了用户产生的数据在数据库中的密文存储,采用 AES对称加密算法对用户产生的数据逐字段进行加密并编码处理后再存储至相关数据表。其原理是首先在本地客户端通过管理员随机生成的密钥来加密输入的信息,然后为了进行网络传输采用 BASE64 编码方式来编码加密后的数据,最后将编码转换后的密文数据依次存放到数据库的数据表里。安全选课系统中设计了类En_aes,该类的实现代码中集成了AES算法和BASE64编码方法,专门用于对数据进行加密和解密处理,该类的CreateEncryptor函数用于加密处理,CreateDecryptor函数用于解密处理。其核心代码如图3和图4所示。

4.2 登录模块

登录界面是学生、教师、系统管理员三类用户群体的公共模块,对整个系统而言,它起着枢纽般的作用。作为“安全选课系统”登录模块的界面,需要处理的用户角色分学生,管理员,教师三类。用户通过JComboBox类可以从下拉列表中选择值,从而确定登录者的身份。客户端界面接受用户的登录账号和登录密码,点击“确定”按钮之后采集登录信息发往后台数据库服务器进行比对,认证身份信息成功后进入相应的角色用户操作界面。

为了保证用户名和密码在传输过程中的机密性,使用安全算法模块中的类En_aes对用户名和密码进行加密处理。UserName为账户, Password为密码,使用En_aes加密用户名和密码的代码如下:

En_aes aes = new En_aes();

String enc1= aes.createEncryptor(UserName);

String enc2=aes.createEncryptor(Password);

加密后的用户名和密码将用于和数据表中存储的数据进行比较,判断角色及验证用户账号和登录密码的流程如图6所示。

4.3 课程管理模块

关于课程信息的管理有录入课程信息、查询课程信息、修改课程信息、删除课程信息。管理员用户对课程信息进行编辑录入后,系统会对录入的信息进行AES加密和Base64编码转换,并由客户端将数据以密文的形式上传并存储至服务器的数据库中。数据库课程信息表的存储结果如图7所示。

当用户对课程信息进行查询后,系统中利用SQL SELECT构建查询语句对课程信息表进行检索,并将查询的结果解密后放到Jtabl类建立的表格中呈現出来,管理员子系统的查询课程信息所得结果窗口如图8所示,查询结果显示为解密后的明文。

4.4 密钥更新模块

管理员角色负责维护系统信息的安全性就要实行定期的密钥更换,根据实际需要更换的密钥有学生信息密钥、教师信息密钥、课程信息密钥、成绩信息密钥。密钥更新模块的界面窗体如图9所示。对于更换密钥的具体流程是确定更换密钥后,读取数据库内由该密钥加密的数据表,依次将每条记录读取出来发送至客户端,客户端用旧的密钥进行解密后再用新的密钥对该条记录数据进行加密,加密后数据再发往数据库存储。更换密钥信息的界面窗口如图9所示。

5 结束语

选课系统在各高校普遍应用,该文在充分调研高校选课系统地业务需求和安全需求的基础上,基于C/S架构模型设计并实现了一款安全的选课系统软件,在客户端运用AES密码算法和BASE64编码相结合的技术将用户产生的数据进行加密和编码转换后再通过网络进行传输并以密文形式存储在数据库中。该文采用MySQL作为安全选课系统的后台数据库,采用Java JDBC接口实现客户端和后台数据库服务器的连接。实现了选课过程产生的所有数据的安全存储和安全传输,有效保证了数据的机密性。

参考文献:

[1] 杨波. 现代密码学[M]. 北京: 清华大学出版社, 2017.

[2] 陈越, 寇红召, 费晓飞, 等. 数据库安全[M]. 北京: 国防工业出版社, 2015.

[3] 明日科技. Java从入门到精通[M]. 北京: 清华大学出版社, 2016.

[4] 刘华. Base64编码算法的研究及Delphi 实现[J]. 电脑知识与技术, 2017, 13(2):78-82.

[5] 程红云. 公选课选课及管理系统的设计与实现[D]. 天津: 南开大学, 2013.

[6] 曹嘉芮. 基于B/S结构的电子商务数据库加密设计[D]. 成都: 电子科技大学, 2014.

[7] 罗丽. 基于B/S模式的高校学生选课系统设计与实现[D]. 长沙: 湖南大学, 2014.

[8] 李刚彪. 数据库加密技术的研究与实现[D]. 太原: 太原理工大学, 2010. [通联编辑:谢媛媛]

猜你喜欢
数据库
超星数据库录入证
本刊加入数据库的声明
两种新的非确定数据库上的Top-K查询
国外数据库高被引论文排行TOP10
国内主要期刊数据库