GithubHelp home page GithubHelp logo

qz1314233 / livechat Goto Github PK

View Code? Open in Web Editor NEW

This project forked from giyn/livechat

0.0 0.0 0.0 10.13 MB

:two_men_holding_hands: 本项目基于 Java 的 Swing 包实现了一个带图形用户界面的基于数据加密算法的即时聊天系统。实现了用户登录及验证、在线聊天、好友管理、文件传输、聊天记录管理和数据传输加密等功能。

Java 100.00%

livechat's Introduction

LiveChat

🗒️ Introduction

👬 本项目基于 Java 的 Swing 包实现了一个带图形用户界面的基于数据加密算法的即时聊天系统。实现了用户登录及验证、在线聊天、好友管理、文件传输、聊天记录管理和数据传输加密等功能。

编程语言:Java;

JDK 版本:1.8.0;

开发工具:IntelliJ IDEA(版本:2020.2.1);

数据库:MySQL(版本:8.0.19 for Win64 on x86_64);

服务器:阿里云服务器(版本:Windows Server 2019 数据中心版 64 位中文版)

程序架构:C/S 架构;

👉 Instruction

先运行 LiveChat/Server.java 文件,然后运行 LiveChat/Client.java 文件(支持多开)即可。

✒️ DemandAnalysis

需求分析图:

78e8f4071226ef856f471d3c24fda25.png

  1. 用户登录:

    用户在登录界面输入用户 ID 和密码点击登录,后台系统接收到数据后进行用户身份验证,若验证通过则进入系统主界面;若没有通过用户身份验证则显示错误。

  2. 登录验证:

    用户点击登录按钮后,后台系统接收到用户输入的信息后,在数据库的用户信息表进行查询,若验证成功则成功进入系统主界面;若验证失败则返回对应的错误信息。

  3. 聊天功能:

    在好友列表中选择一名好友后,打开与其聊天界面,若该好友在线,则可以向其发起即时聊天,对方收到消息后也会弹出聊天窗口。

  4. 文件传输:

    在与好友聊天时,可以进行文件/图片的发送,对方接收到文件后可以保存在聊天记录文件夹中。

  5. 好友管理:

    用户可以在好友列表中进行添加或删除好友,添加好友时会向对方发送申请,对方收到通知并通过申请后方能成为好友,好友列表的信息会存储在数据库中,在好友关系解除后该数据也会清除。

  6. 在线、离线状态显示:

    后台服务器动态地请求用户的所有好友的在线状态,并实时返回信息,以实现显示所有好友当前是否在线,达到较好的鲁棒性。

  7. 聊天记录管理:

    后台服务器将用户与好友的聊天记录以文件的形式存储于本地,用户无需配置数据库即可在本地导入聊天记录,以便聊天记录的查询。

  8. 数据传输加密:

    计算机网络安全最为重要的内容是为用户提供安全可靠的保密通信,其中最常用的手段是密码机制。在该系统中所采用的加密算法是 RSA 加密算法和 MD5 加密算法。其中用户的密码使用 MD5 加密后存储于数据库,用户与用户间的聊天记录信息使用 RSA 加密算法后形成密文在后台服务器进行传输,好友经过共享密钥进行解密后才能得到明文,基于以上的加密操作来防止中间攻击导致的数据泄露,

系统通信架构图:

fab66585298b7dfb4e097ce6223e302.png

软件功能架构图:

787b84e2e7bd4f73aff4168bb9853f6.png

💟 Features

  1. 用户登录

970630b8fbcc5b613e9b646959b9338.png

  1. 好友列表

19ba3eed401dfc9cee04388c90c842d.png

  1. 添加好友

29cfb4ff2dc861eb0d15235f8d5e6d6.png

eac529f12823de7aa536fbd9b3e9508.png

  1. 好友申请

c75ddf82588d7bc086c2a0359b87cfb.png

98d57789d97379138e653b703dd38f3.png

  1. 聊天功能

ecda00ff487bc920d1eb5b78bb96f62.png

  1. 发送图片/文件

7637c47cabe231d6d3ea3fcd4f18529.png

1ee8c5f6189db34bced813f01478e6e.png

livechat's People

Contributors

giyn avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.