作业目的
在已掌握的 Java EE 技术的基础上,将所学加密解密以及数字摘
要技术应用与 Java EE 开发,加深对所学知识的理解。
作业内容
1、用户注册功能:开发用户注册功能,需要填写的字段主要包
括:用户名、密码、公开秘钥、非对称密码算法、数字摘要算法。
用户注册中所填写的信息中的密码使用 MD5 或 SHA 算法,转换为数
字摘要后存储到数据库。
2、用户登录功能:用户输入用户名和密码登录到系统,输入的
密码需要通过 MD5 或 SHA 算法转换为数字摘要后,和存储在数据库
中的数字摘要进行比对,来判断是否允许登录。
3、获取公钥功能:在页面中输入学生 ID、点击提交按钮,将
ID 信息提交至服务器,提交至服务器后,在服务器中可以通过该学
生的 ID,获取到该同学的公共秘钥。
4、线下加密功能:获取到公钥信息后,通过 Java 程序对一段
明文进行加密。
5、提交加密信息:输入学生 ID 及加密后的文本,点击提交后
将加密后的信息保存至数据库。
6、用户登录后:如果看到加密信息字段有值,那么该值会在用
户界面中显示,用户通过线下的方式解密信息获得明文。
注:
- 数据库中只需要一张用户表:主键、用户名、密码、公钥、
加密后的信息、摘要算法(MD5/SHA)、加密算法(RSA)。在数据库建
表的时候注意公钥和加密后信息的长度。- 密码使用每位同学的学号,eg:张三同
学学号为:1234567,那么他存储到数据库的密码应该为:
MD5(1234567)。- 在信息加密解密中两位同学组成一组,a 同学输入 b 同学的
id,获取 b 同学的公钥信息,然后加密一段信息,将该信息存储到 b
同学的数据库记录中的加密后信息列。b 同学登录后可以看到该加
密信息,然后自己通过线下方式解密。b 同学通过输入 a 同学的
id,获取 a 同学的公钥,然后用公钥对信息进行加密,加密后将信
息存储到数据库,a 同学登录后,如果数据库中有加密的信息,a 同
学可以看到加密的信息,并将信息进行解密。在作业中需要显示你
和哪位同学一组完成的该项工作。
截止时间
十六周周五
使用技术
基于 Java Web 开发技术完成
主要使用 HTML、Servlet、JDBC、Java 加密与解密、Java 数字摘要算法,使用 MySQL 数据库。