安全即时通讯系统
一、课程设计目的本次课程设计目的是了解大型程序开发设计时所需要的步骤及其基本原则,通过团队分工合作的方式,以实践为过程,认识了软件开发的过程模型和生命周期,并且在程序设计的途中, 充分体会团队合作中沟通交流、合理分工的重要性,学习将分工完成的内容整合形成一个完整的工程。
二、需求分析1、系统功能:我们站在程序使用者的角度,分析出用户所需要的功能,再结合程序设计要求,我们认为该系统需要具备以下功能:通过P2P和C/S混合架构实现即时通讯,通过加解密函数和信息隐写实现安全传输、通过Vue框架实现前端交互界面、通过数据库进行用户管理等等。其中客户端和服务器端的具体功能如下:
客户端:o 注册:与集中服务器通信完成注册,包括用户名、密码、邮箱
o 认证登陆:与集中服务器通信完成用户名、口令认证登陆
o 通信录管理功能,实现对通信录好友的添加、删除
o 即时通讯功能:实现与通信录好友间的信息发送、接收
o 透明加解密功能:采用非对称密码体制协商加密秘钥,用对称密码算法进行加解密,实现端到端的透明加解密
o 信息隐藏功能:实现以图片为载体的透明嵌入提取功能
o 人机交互界面:
服务器端:o 用户注 ...
简单邮件收发系统
实验环境Maven+Java Socket+JavaMail+wireshark
数据结构1、Mail 类 封装一封邮件中所应包含的内容
2、serveSocket 用于接收客户连接请求,参数port指定服务器要绑定的端口(服务器要监听的端口),参数backlog指定客户连接请求队列的长度
3、MailSender类 用于发送邮件,构造器中封装了properties配置变量,sender() 方法,通过session与服务器进行交互建立transport ;createMimeMessage ()方法 用于封装一个邮件信息,使用MimeMessage类进行封装4、Pattern 类是Java中用于编译正则表达式的类
5、Matcher 类是Java中用于执行匹配操作的类
定义参数变量1、Session 用于收集JavaMail运行过程中的环境信息,解析上文提到的properties配置,找到对应配置信息
2、properties 配置邮件发送的主机,服务器,以及相关配置参数
3、用于读写的io:
12345InputStream input = null;InputStreamRead ...
非关系型数据库--NoSQL
1.定义NoSQL(Not only SQL)是对不同于传统的关系数据库的数据库管理系统的统称,即广义地来说可以把所有不是关系型数据库的数据库统称为NoSQL。
NoSQL 数据库专门构建用于特定的数据模型,并且具有灵活的架构来构建现代应用程序。NoSQL 数据库使用各种数据模型来访问和管理数据。这些类型的数据库专门针对需要大数据量、低延迟和灵活数据模型的应用程序进行了优化,这是通过放宽其他数据库的某些数据一致性限制来实现的。
1.1 常见分类键值数据库键值:键值数据库是高度可分区的,并且允许以其他类型的数据库无法实现的规模进行水平扩展。
键值数据库是一种非关系数据库,它使用简单的键值方法来存储数据。键值数据库将数据存储为键值对集合,其中键作为唯一标识符。键和值都可以是从简单对象到复杂复合对象的任何内容。键值数据库是高度可分区·的,并且允许以其他类型的数据库无法实现的规模进行水平扩展。
内存数据库内存:游戏和广告技术应用程序具有排行榜、会话存储和实时分析等使用案例,它们需要微秒响应时间并且可能随时出现大规模的流量高峰。
文档数据库文档:在应用程序代码中,数据通常表示为对象或 JSON ...