Java实现的基于 Kerberos 网络认证协议的分布式应用——邮箱

1.基本说明

  • 开发运行环境:Windows、Eclipse、SQL Server。
  • 项目描述:用户在登录时利用 Kerberos 进行认证,邮箱具有基本的功能包括邮件收发、用户注册、修改密码,同时对邮件利用 RSA 进行签名。小组四人在编写开发文档的前提下使用 Java 进行开发,本人负责的是 AS、EmailServer、DES、RSA 的编写(所有代码已征得同意发出来)。

2.详细说明(一定要看)

  • 该Kerberos并不是其完全体,只是实现了一些,很多地方均已省略或者是简单化,例如各个会话的DES、RSA密钥均是默认对方已知,密钥分发过程均已省略;票据验证、票据重放、票据有效期等这些均没做
  • 源码中有设计文档,但只能作为参考,基本思路是一样的,但很多细节的地方还是修改了许多,具体以实现的源码为准
  • 源码中的四个文件夹对应eclipse源码文件,AS(认证服务器)、Client(邮箱客户端)、EmailServer(邮件服务器,V)、TGS(票据分发服务器);两对.mdf和.ldf文件分别对应的是AS(认证服务器)、邮件服务器(V)的SQLserver数据库文件,服务器和对应的数据库记得放同一台电脑
  • UI用的javaFX,jdk8以上的版本均已被移除掉,所以8以上的版本需要在客户端自行安装;每一个UI界面操作逻辑就是一个.java文件
  • AS、EmailSever、TGS的程序入口均是在src文件夹下对应的.java文件,而Client的主函数在Client/src/LogRegWindow/LogRegWindow.java,注意:没有实现内网穿透,只能在同一局域网内运行,在运行之前记得修改.java文件中对应的ip地址,如果服务器都放在同一台机器还要注意端口号的
  • 服务端已经实现多用户、多线程的访问;封包、解包用的是JavaStruct
  • 下图分别是AS和邮件服务器的数据库(邮件放在项目文件夹下的mail文件夹);客户端邮件存储方式:放在项目的Mail文件夹下,以用户ID(账号)为文件夹,子目录有收件箱、发件箱两个文件夹。收件箱中以发件人账号和时间戳的组合表示每条邮件,内有正文、主题、附件文件;发件箱以收件人+时间戳组合为文件名表示每一条已发送的文件,每条邮件内容也都有正文、主题、附件文件。
    在这里插入图片描述
    在这里插入图片描述
  • 账号是10位,密码是6~16位,密码是进行md5之后传到AS并保存的,避免数据库泄露造成的损失
  • 了解基本逻辑结构后,可以再看设计文档中的包,以便进行下一步的理解;服务端均是采用短连接的方式
  • 客户端运行一开始进入登录界面,可点击进入注册界面,会有格式验证、账号是否重复验证;登录进入主界面之后,可以修改密码。给别人发邮件会验证收件人是否存在,发送成功之后会保存在本地,会保存在邮件服务器和本地,同时邮件服务器数据库会添加一条记录表示该邮件还未被接收;点击发件箱会显示已经发送的邮件内容;点击收件箱会从邮件服务器的数据库查询有邮件则发送过来,客户端保存到本地同时将本地的所有收件箱读取并在UI显示出来,数据库也会删除对应的记录表示已被接收,没有邮件则服务器返回空邮件包,本地的邮件也会显示出来
  • 本人写的代码都会有注释,其他人的看不懂也不要问我了,呃呃呃,,,因为也不是我写的
  • 写的很乱。。。

3.源码

https://gitee.com/zhuhezhang/mail-base-on-kerberos
https://github.com/zhuhezhang/mail-base-on-kerberos

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值