欢迎光临散文网 会员登陆 & 注册

【山西警察学院毕业论文模板】基于AES算法的仿微信实时通信系统的设计与实现

2023-08-10 11:58 作者:趣毕业  | 我要投稿


基于AES算法的仿微信实时通信系统的设计与实现

 

摘  要:近些年来,由于通信隐私与信息安全问题的日益关注,实时通信加密已经成为互联网通信发展中不可避免的趋势。本课题以AES算法为核心,以增强通信安全性及用户体验为目标,实现仿微信的实时通信系统。

系统即时通、好友管理、聊天记录查询等功能,利用TCP协议实现消息的传输,利用AES算法实现消息的加密解密,实现了消息内容的保密和信息安全性。同时该系统还有好友管理、聊天记录归档等功能,可以给用户带来好的体验。该系统用Java语言和MYSQL数据库进行开发设计,利用WebSocket实现即时通功能。

未来,将继续完善该系统的功能和性能,强化系统的安全措施,增强用户使用安全和隐私的保护。我们也将继续优化通信协议,以提高系统的稳定性和有效性。我们的最终目标是为用户提供一个快速、安全且高效的交流平台

关键词仿微信聊天系统;AES;MYSQL数据库

 

Design and implementation of Real-time Communication system imitating Wechat based on AES algorithm

 

Abstact:In recent years, with people's increasing attention to communication privacy and information security, real-time communication encryption has become a necessary trend of Internet communication. This paper realizes a real-time communication system like WeChat based on AES algorithm, aiming to improve the communication security and user experience.

The system has the functions of instant messaging, friend management, chat record query and so on. It uses TCP protocol for message transmission, and AES algorithm for message encryption and decryption. Further explained, the system realizes the data transmission and processing through the application layer and transmission layer protocol, and uses a separate AES algorithm to encrypt and decrypt the message to ensure the security of communication. At the same time, the system also has friends management and chat records archiving and other functions, can provide users with a better experience. This system is written in Java language and realizes instant messaging function using WebSocket. In the process of encryption and decryption, the AES algorithm realizes the encryption and decryption of the message, which realizes the confidentiality and information security of the message content.

In the future, it will continue to improve the functionality and the performance of the system, adding more security measures and encryption algorithms to improve user security and privacy protection. We will also continue to optimize the design of the communication protocol to improve the stability and effectiveness of the system. Our ultimate goal is to provide users with a fast, safe and efficient communication platform, so that users can communicate more smoothly and happily.

Keywords: imitation WeChat chat system; AES;MYSQL DATABASE


目录

目录

1 概述

1.1 研究背景及意义

1.1.1 研究背景

1.1.2 研究意义

1.2 国内外研究现状

1.3本章小结

2 开发平台及工具的选择

2.1 AES加密简介

2.2 Java语言简介

2.3网站所使用的数据库

2.5本章小结

3 系统分析

3.1 系统功能分析

3.2 可行性分析

3.2.1 经济上的可行性分析

3.2.2 技术上的可行性分析

3.3 需求分析

3.3.1 市场需求分析

3.3.2 系统功能需求分析

3.4 AES理论基础

3.5 AES算法结构

4 系统分析

4.1 系统功能设计

4.2 架构设计

4.3 消息设计

4.4 数据加密的实现

4.5 页面设计

4.5.1 后台登录

4.5.2 首页功能

4.5.3聊天记录查看功能

4.5.4表情选择功能

4.5.5好友列表功能

5 系统测试

5.1 系统测试

5.2 测试结论

6 总结

    

参考文献

 


1 概述

1.1 研究背景及意义

1.1.1 研究背景

随着社会技术的迅速发展,传统的通信方式已经不能完全满足现代社会人们的要求。随着网络的推广与普及,网络的通信方式开始兴起,网络聊天越来越受到各种网民的欢迎。网络通信方式与传统的通信方式相比,具有通信花费较少、可以实时通信、相互交流方式多样等很多优点。正是因为网络通信技术的这些优点,才得以让它飞快的被广大用户所认可。随着网络交流的不断的发展,网络交流已经成为了人们生活之中不可或缺的一部分。

网络是一个虚拟的、开放的世界,这是网络的魅力所在,但同时也是不安全的。早期的网络中的信息人都是可见的,用户的信息安全得到保障。目前,网络安全问题已经成为万众关注的阶段问题,是一个世界级的问题。在网络安全问题中很重要的一个环节就是通信安全问题,当下大部分非常流行的网络聊天程序对用户的通安全没有相应的保障,用户的信息在传输过程中可能会被盗取或修改。

1.1.2 研究意义

AES算法是一种高强度加密算法,采用该算法能够有效地加强通信系统的安全性,防止敏感信息被黑客窃取或篡改。仿微信实时通信系统需要考虑到多方面的问题,例如如何保证消息的可靠传输、如何实现好友关系管理以及如何处理用户在线状态等问题。通过研究这些问题并尝试设计解决方案,可以拓展实时通信系统的技术应用领域。在当前信息化社会背景下,网络安全和数据隐私保护已成为社会各界关注的焦点。通过基于AES算法的仿微信实时通信系统的研究,不仅可以提高通信系统的安全性,还能够推动相关技术的发展和应用,进一步提升网络安全和数据隐私保护的水平。因此,基于AES算法的仿微信实时通信系统的研究具有重要的意义和价值

1.2 国内外研究现状

国内外对聊天程序的加密情况看,目前主要采用现有基础之上添加特定的加密插件的方式来处理。比较典型的例子是Linux 平台下Gaim是一款多集成聊天程序,其中集成了ICQ、MSN、QQ等现今主流国内外聊天程序。普遍的聊天程序没有经过加密而直接传输聊天明文。Gaim 通过添加插件程序对未加密的聊天程序进行加密传输,通信双方需要只要同时安装加密插件就可以顺利的对聊天内容进行加密解密。这其中存在一个现而易见的问题:要是一方加入了加密插件而另一方却没有相应的解密程序显然双方不能正确通信。加密技术有着很长的发展历史,早期的密码变换鄙是由手工或机械完成的,20世纪70年代起计算机技术的出现推动了密码学的发展,密码学也逐渐形成了一门新的科学"。1949 年C.E.Shannon 发表的“The Communication Theory ofSerecy Systems”一文,奠定了密码学的理论基础|。Shannon在文中提出了“混乱性”和“扩散性”两大准则,这也是当今密码设计所遵循的基本准则之一。1976年W.Diffie和M.Hellman发表了“New Directions in Cryplography”--文,提出了适用于网络保密通信的公钥密码思想,开辟了公钥密码学的新领城。1977 年,美国国家标准局将IBM公司提出的Lucifer算法作为数据加密标准(DataEncryption Standard,简写为DES)予以公布,宣布了近代密码学的开端。

近代密码学中有两类加密体制:对称加密体制和非对称加密体制。对称加密方法中比较著名的有DES算法和AES(Advanced Encryption Standard,简称AES)算法,非对称加密方法中比较著名的有RSA、ECC算法等。两种加密体制都是由明文、密钥、加密方式、解密方式和密文组成。在密码体制中,加密密钥和解密密钥一致称作对称加密算法加密密钥和解密密钥不一致,即非对称加密算法,此时加密密钥是公钥,解密密钥称为私钥。

随着密码破解技术的发展,1997 年6月17日美国的数据加密标准DES(56bit)被攻破,同年美国开始采用新一代数据加密标准(AES)。2001年比利时密码学家设计的Rijndael算法取代DES算法被选为AES加密算法的标准方案,AES一次可以加密128位字符,有三种加密方法对应的密钥长度分别为128bit、 192bit 和256bit. Rijndael 算法具有安全性、加密效率、实现简单、高度灵活等优点。在抗密码分析方面算法可以计算出最佳差分特征的概率,有效的抵抗差分密码分析和线性密码分析等。由于AES算法拥有出色的安全性,它在各种加密领域得到了广泛应用,而手机中采用的加密软件有很大一部分都是采用的AES加密算法。

1.3本章小结

本章主要是对仿微信聊天系统的开发背景,以及国内外现状的一个大概的描述,同时也介绍了该网站所需要的开发环境和技术,并对全文进行了简单的概括,让读者第一时间能了解到该论文的一个大概的内容

2 开发平台及工具的选择

2.1 AES加密简介

AES加密,它的完整名字叫做“高级加密标准”,是一种非常强大的加密算法,它是由美国国家标准与技术研究所(NIST) 在2001年发布的,它被认为是目前世界上最安全、最先进的加密算法之一。

AES加密有着很多用途,它可以用来加密数据,以防止未经授权的访问和更改,也可以用来加密电子邮件,保护个人隐私。它还可以用来加密网络传输,保护网络数据免受未经授权的访问,也可以用来保护Wi-Fi网络的安全性。

AES加密算法的安全性非常高,它是一种块加密算法,它使用128位、192位或256位的密钥,可以提供非常强大的安全性。它的安全性可以抵抗各种类型的攻击,包括密码穷举攻击、密码分析攻击和密码拓展攻击。

AES加密算法的安全性可以通过它的密钥长度来衡量,密钥越长,安全性就越高,128位的密钥可以抵抗大多数的攻击,而192位和256位的密钥可以抵抗所有的攻击,所以AES加密算法可以提供非常高的安全性。

AES加密的基本原理是: 将明文按照一定的规则进行分组,然后使用密钥对每组数据进行加密。AES加密算法有三种模式: ECB(电子密码本)、CBC(密码块链) 和CFB(密码反馈)

ECB模式是最常用的模式,它将明文分割成固定大小的块,然后使用密钥对每个块进行加密。但是,它存在一个问题: 如果明文中有两个相同的块,那么它们也会被加密成相同的密文。

基于AES算法的通信信息加密传输方案具有以下四个特性:

(1)安全性:由于该方案所采用的数据加密算法是AES算法,而该算法是已经被多方分析且广为全世界所使用的、加密强度极高的算法;而且在该方案中对信息的加/解密处理过程是在网络传输之前/后进行的。这就决定了该方案具有很高的安全性。

(2)低耗性:在信息处理上同原方案相比多了加密处理模块,但新方案所采用的加密算法是运算效率极高的AES算法;因此,新方案能以较低的资源消耗为代价来提高通信信息的安全性。

(3)易用性:为了提供较高的安全性,该方案使用两层加密处理过程,但用户仅需设定少数的几个参数,所以在方案的实施上对用户来说是极其方便的。

(4)扩展性:从该方案对信息的处理过程可知,其可对任意类型的通信信息进行处理;因此该方案具有很高的扩展性,能够较好地适应当前及未来的网络应用。

2.2 Java语言简介

Java是一种广泛使用的计算机编程语言,由Sun Microsystems公司发明并于1995年推出。Java是以C++语言为基础,但更加简单易用、跨平台性强,语法精简、无指针、自动内存管理。Java语言在应用领域广泛,特别是在大规模企业应用、Web应用、移动应用、游戏开发等方面具有较高的市场份额。

Java语言具有以下几个特点:

1. 面向对象:Java是面向对象的语言,具备抽象、封装、继承、多态等面向对象的特性,使得编写代码更加简洁易读,更易于维护和重用。这些特性也让Java在软件开发中更加容易实现可扩展和可维护的软件。

2. 跨平台性:Java语言充分体现了“Write Once, Run Anywhere”的哲学,也就是一次编写,随处运行。使用Java编写的程序可以在不同的操作系统和硬件平台上运行,并且性能表现稳定。

3. 简单易学:Java语言的语法较为简单,相对于C++语言来说,去掉了冗余及危险的特性,比如指针和内存管理等。Java也提供了广泛且易于理解的开发文档和范例,使得初学者能够快速学习Java。

4. 强类型:Java是一种强类型语言,意味着编译器会在编译期间检查变量类型,防止类型错误,并避免许多程序错误。

5. 自动内存管理:Java通过垃圾收集器实现了自动的内存管理,自动回收程序中不再使用的内存,避免了内存泄漏等安全问题,使得程序更加稳定可靠。

Java语言具有广泛的应用,几乎可以涵盖计算机软件开发的各个领域,包括大型企业应用、移动应用、Web应用、物联网、游戏开发等。Java语言的电商软件、金融软件、大数据软件等在市场应用中深受欢迎。

2.3网站所使用的数据库

MySQL数据库是目前而言,比较流行的一个关系型数据库系统,它目前属于甲骨文公司旗下,是一个速度快的同时,体积也相对较小的数据库系统,而且它的拥有成本也相对较低,特别是它还开放源码,因此很多系统的开发,都会选择mysql作为系统的数据库。MySQL是一种开源的关系型数据库管理系统,它使用SQL语言进行数据管理和查询。MySQL最初由瑞典的MySQL AB公司开发,现在属于Oracle公司。

MySQL支持多种操作系统,包括Windows、Linux、Unix等,同时也支持多种编程语言,如C、C++、Java、Python等。它具有以下特点:MySQL是开源软件,用户可以自由地修改、分发和使用MySQL;MySQL可以处理大量的数据,支持多个数据表、索引和复杂查询;MySQL采用了多线程、异步I/O等技术,能够快速地处理大量的数据请求;MySQL提供了高可用性和数据安全机制,包括数据备份、恢复和事务处理等功能。除此之外,MySQL还支持存储过程、触发器、视图等高级特性,可以让用户更方便地管理和查询数据。MySQL的应用非常广泛,包括网站、企业应用、移动应用等各个领域。

2.5本章小结

这个部分讲述了网站所用到的一些技术支撑,对这些技术从自己理解的层面结合网上官方的回答向读到这篇论文的学者呈现出来,从而让读到该项目论文的读者可以自己品味出来其中的韵味,同时最后也大概的描述了网站的主要内容。

3 系统分析

3.1 系统功能分析

本系统是仿微信聊天系统,系统中用户进行浏览中需要进行登录才可以进行访问以及进行聊天,用户功能如下:

1、首页,查看首页信以及消息通知

2、颜色字体选择:发消息可以查看选择字体信息

3、发送表情:可以选择合适的表情进行发送。

4、好友列表查看:查看还有列表以及未读信息提醒

3.2 可行性分析

3.2.1 经济上的可行性分析

基于AES算法的仿微信实时通信系统的开发具有较高的经济可行性和市场前景。当前,社交软件的需求超过了市场对其的供应量,仿微信实时通信系统则能够满足用户的高质量体验和隐私保护的需求。且随着人们对数据保护重视程度的提高和隐私性的关注度不断加大,AES算法的数据加密方式使得此类应用程序更加安全。在过去的几年中,社交和通讯类应用已经成为移动互联网市场的主要推手之一。因此,本系统在技术可行的前提下,具有良好的经济可行性和发展前景。

3.2.2 技术上的可行性分析

在进行基于AES算法的仿微信实时通信系统开发之前,需要进行技术上的可行性分析,以确定系统能否成功开发实现。下面分别从技术架构、数据存储和系统性能三个方面进行可行性分析。

1. 技术架构:基于AES算法的仿微信实时通信系统采用的技术架构需要满足高效、安全、实时等特点。例如,选择一种高可靠、可分布式部署的系统架构可以在一定程度上保证系统的可靠性、可扩展性,同时也需要满足实时性,例如选择TCP/IP协议进行数据传输,以保证数据的高效传输。

2. 数据存储:仿微信实时通信系统需要对用户个人信息、聊天记录等数据进行存储,因此在进行系统开发时需要考虑数据存储的可行性。例如,可以选择云存储技术,实现数据同步、备份和恢复等功能,以保证数据的安全性和完整性,同时也需要对用户隐私信息进行保密处理。

3. 系统性能:仿微信实时通信系统需要实现实时消息的传输和处理,因此在系统性能方面需要充分考虑。例如,可以使用多线程技术来提高系统的并发处理能力和响应速度,采用负载均衡技术和分布式架构来提高系统的可扩展性和容错性。

3.3 需求分析

需求分析是是指对要解决的问题进行深度解析,是开发过程中必不可少的环节。本阶段针对仿微信聊天系统的使用情况进行调研,确认开发目的,为达到改目标进行分析,从而得出用户需求。

3.3.1 市场需求分析

该网站的设计是在目前所需要的功能为目标的基础上进行设计研发的,为了适应未来实际的需求的变化,给未来的功能提供更便捷的扩展和维护,我们必须去考虑到网站的扩展问题,在现有的基础上去增加功能时,网站原本的框架和功能点不会被太大的影响。 

3.3.2 系统功能需求分析

(1)用户

1、首页,查看首页信以及消息通知

2、颜色字体选择:发消息可以查看选择字体信息

3、发送表情:可以选择合适的表情进行发送。

4、好友列表查看:查看还有列表以及未读信息提醒。

3.4 AES理论基础

AES,即高级加密标准(Advanced Encryption Standard),是一种对称密钥加密算法,用于对数据进行加密操作。AES算法的理论基础主要包括以下内容:

1. 数据块大小

AES算法对待加密的数据进行分组,每组称为一个“数据块”,其大小可以是128比特(16字节)、192比特(24字节)或256比特(32字节)中任意一种。在实际应用中,128比特的数据块大小常见,因为其安全性、速度和效率均表现良好。

2. 加密过程

AES算法采用迭代结构(Iteration),即将每一个数据块进行重复多次的变换,最终得到密文。具体来说,该算法主要分为四个步骤:字节替代、行移位、列混淆和轮密钥加,其中轮密钥加是当所有轮变换完成后的最后一步,用于添加最后一个密钥。【2】

3. 密钥扩展

在AES算法中,密钥扩展是一个很重要的步骤。该步骤将输入的密钥扩展为不同的轮密钥,以用于加密算法的迭代变换中。密钥扩展采用的是基于置换的密码学算法,具有高度的安全性和有效性。

3.5 AES算法结构

 

分组密码是一种加密方式,它是将明文分组后进行加密,通常得到的密文长度与明文长度相等。而AES算法则是分组密码算法中的代表之一。AES算法中数据分组的长度只能是128位,而密钥长度可以是128位、192位或者256位。在AES加密算法中,采用的是对轮函数实施迭代的结构,即轮函数结构,它采用的是SP结构。

需要注意的是,加密算法的强度以及密钥长度对加密结果有着至关重要的影响。在使用AES算法进行加密时,要选择合适的密钥长度以及密钥强度,以确保数据的安全性。

AES加密算法的轮函数包括以下三个层次的结构组成:

(1) 非线性层:该层主要进行非线性操作,采用S盒,将输入的明文进行S盒替换,用于使得明文在加密过程中难以预测,从而提高AES算法的安全性。

(2) 线性混合层:该层主要进行高度扩散,对明文进行4x4仿射变换,其中涉及到行移位和列混淆得到一个新的状态矩阵,进一步加大每个明文字符的影响,增强加密的混淆性,从而进一步提高AES算法的安全性。

(3) 密钥加层:该层主要用于实现密钥的加密控制作用,将每一个状态矩阵加上对应的轮密钥,从而进一步加密数据,同时控制了密钥的加密过程,提高AES算法的安全性。在AES高级加密算法中,每一组需要进行加密操作的明文或是每组需要进行解密操作的密文需要经过多次数据转换,每一次转换产生一个中间结果,这个中间结果称为状态(State)。状态可以表示为二维字节数组,称为状态矩阵。【7】

在标准的AES中,状态矩阵有四行,Nb列,因此当Nb等于4时,状态矩阵为4x4的矩阵。另外,初始密钥也可以表示为一个二维字节数组,其中四行,Nk列。当Nk等于4时,初始密钥矩阵也为4x4的矩阵。以下是Nb=4,Nk=4时状态、初始密钥的对应矩阵:

AES算法是一种流行的对称密钥加密算法,其加密过程分为四个主要步骤:密钥扩展、轮密钥、Nr-1轮轮变换和最后一轮轮变换。密钥扩展步骤用来生成每一轮所需的轮密钥。在该步骤中,AES算法使用密钥调度算法将原始密钥扩展成一个每轮所需的密钥数组。轮密钥步骤将每轮的轮密钥与明文进行异或操作。这个步骤是保障加密过程不可逆性的关键。

在Nr-1轮轮变换中,AES算法重复执行4个步骤:字节代换、行移位、列混淆和轮密钥加。这些步骤将明文的字节转换为复杂的、难以反推的状态,并在加密过程中增加了强度。其中,字节代换将每个字节替换为一个预定义的值,行移位则将每一行移动一定数量的位数以生成一个新状态。列混淆和轮密钥的目的是进一步混淆状态并增加强度。最后一轮轮变换处理时,与Nr-1轮轮变换步骤类似,但是列混淆会被省略。在最后一轮,字节代换和行移位执行后,再与最终的轮密钥一起执行轮密钥加。

AES算法的解密过程与加密过程大致相同。唯一的区别在于解密过程中,列混淆、行移位和字节代换等操作是逆向进行的,而轮密钥的扩展顺序与加密过程相反。这样才能将密文转换回明文。

图3-3 AES加密解密完整结构图

4 系统分析

4.1 系统功能设计

在基于AES算法的仿微信实时通信系统的设计部分,需要包括以下方面的内容:

1. 系统需求分析:描述仿微信实时通信系统的基本功能和业务需求,包括用户注册、登录、好友添加、聊天记录存储、消息推送等等。

2. 架构设计:包括系统的总体框架、功能模块划分、模块之间的关系等。

3. 后端技术的选择与实现:包括后端框架选择、数据库的选择以及对应的处理方式等。

4. 前端界面设计与实现:主页、聊天页面等界面设计与实现。

5. 消息传输协议的设计:根据仿微信实时通信系统的功能需求,使用AES算法进行数据加密,同时设计实时通信协议,以保障数据加密的安全性。

6. 数据加密的实现:描述AES加密算法的实现流程,包括加解密算法的实现过程以及具体的加密步骤。

7. 系统功能的实现:依据系统需求分析,具体实现包括用户注册、登录、好友添加、聊天记录存储、消息推送等功能。

4.2 架构设计

在基于AES算法的仿微信实时通信系统的设计中是非常重要的一步。不仅要确定系统整体框架,还要根据需求划分出合理的功能模块,并详细描述模块之间的关系。具体步骤如下:

1. 确定系统总体框架

首先需要确定仿微信实时通信系统的总体框架,也就是确定后端和前端架构设计。系统的后端主要包括数据库、功能模块和服务,前端主要包括界面设计和用户交互功能。

2. 划分功能模块

根据系统需求,确定划分功能模块,一般包括用户管理模块、好友管理模块、聊天管理模块、消息推送模块等。每个功能模块包括具体的功能需求和技术实现。

3. 描述模块之间的关系

在确定功能模块后,需要描述模块之间的关系,比如用户管理模块需与好友管理模块、聊天管理模块和消息推送模块进行交互,并需要与数据库通信进行数据的读写操作。

4. 系统的整体架构设计

根据以上步骤,细化系统的整体架构设计,包括后端和前端架构设计,功能模块划分以及模块之间的关系描述。确定系统实现所需要的技术和技术方案,以及服务的部署和维护等。

基于AES算法的仿微信实时通信系统,可以采用前后端分离的架构,后端技术可以使用Java语言开发,作为服务端,负责链接客户端、执行业务逻辑、提供页面数据接口、支持数据库交互等,还需实现消息推送机制。前端界面可以使用HTML、CSS、JavaScript等。具体的功能模块划分需求进行细化,包括好友管理模块、聊天管理模块和消息推送模块等。其中好友管理模块需要实现用户注册、登录、找回密码、添加好友、删除好友、更新个人资料等功能;聊天管理模块需要实现私聊、群聊、消息记录、文件传输等功能;消息推送模块则需要对用户之间的消息进行实时推送。将以上模块进行整合,实现细网络服务调用的方式构成仿微信实时通信系统。

图4-1 总体架构图

4.3 消息设计

在消息传输协议的设计中,使用AES算法进行数据加密,以及设计实时通信协议,保障数据加密的安全性。具体步骤如下:

1. 根据功能需求,确定协议的传输方式、数据格式和加密方式等。在本文中,采用TCP/IP协议进行数据传输,数据格式为JSON格式,采用AES算法进行加密处理。

2. 参照AES算法加密规范,设计加密程序和解密程序的处理流程,并通过程序代码实现。该部分可以使用伪代码或者实际编程语言进行说明。例如,对于AES算法的加密流程,可以使用以下伪代码描述:

AES加密伪代码

1. 初始化AES密钥,指定加密模式和填充方式。

2. 分块处理明文数据,加入填充数据,最后形成完整的块。

3. 将每个块分别与密钥进行异或运算,然后依次进行替换、移位和混淆的操作,得到加密后的密文块。

4. 将加密后的密文块拼接在一起,形成完整的密文数据。

5. 发送加密后的密文数据至通信协议中。

图4-2 实时通信协议的流程图

4.4 数据加密的实现

AES算法是对称加密体制中的一种加密算法,其安全性和有效性已被广泛证明。下面是关于AES加密算法的实现流程:

 

AES加密算法的实现过程包含以下两个过程:

 

1. 初始化密钥调度表:在此过程中,要使用密钥对128位进行扩展和调度,生成11个128位密钥。具体流程如下:

密钥扩展:将128位输入密钥拆分成4x4的矩阵,然后扩展为44个4x4的矩阵。

轮常数:定义一个数组Rcon,其中Rcon[1] = {01},Rcon[i] = 2 * Rcon[i-1]在GF(2^8)中的结果。然后生成10轮加密所需的10个常数轮密钥。

2. 加密/解密操作:在此过程中,要对明文进行128位分块,并对每个分块进行加密操作。

AddRoundKey:将明文块与轮密钥进行异或操作。

SubBytes:使用S盒,替换每个字节。

ShiftRows:对每行逐个字节进行循环移位,第1行不变,第2行整体向左移动1个字节,第3行整体向左移动2个字节,第4行整体向左移动3个字节。

MixColumns:对每列逐个字节进行混淆。

重复步骤2中的步骤1~4(不包括MixColumns)9次,最后进行第10轮操作时,省略MixColumns。

AES的解密流程和加密流程类似,只不过需要用逆变换代替加密变换,而轮密钥是按反向顺序使用。

图4-3 AES加密算法实现流程图

4.5 页面设计

4.5.1 后台登录

当管理员需要进行后台界面的时候,需要首先填写正确的信息进行登录,才能进入,实现用户登录,管理员登录功能如图4-4所示:

图4-4后台管理登陆功能

4.5.首页功能

仿微信聊天系统首页界面功能包括:可以查看首页信息等。该仿微信聊天系统的首页界面如图4-5所示:

图4-5首页功能

4.5.3聊天记录查看功能

仿微信聊天系统的聊天记录查看界面功能包括:可以查看聊天记录查看信息等。该仿微信聊天系统的聊天记录查看界面如图4-6所示:

图4-6聊天记录查看功能

4.5.4表情选择功能

仿微信聊天系统的表情选择界面功能包括:可以查看表情选择以及发送表情等。该仿微信聊天系统的表情选择界面如图4-7所示:

图4-7表情选择功能

4.5.5好友列表功能

仿微信聊天系统好友列表功能包括:可以查看好友列表信息等。该仿微信聊天系统的好友列表界面如图4-8所示:

图4-8好友列表功能

5 系统测试

5.1 系统测试

在系统开发完成后,需要对现有开发功能进行功能型测试,确认用户在使用的途中不会出现意外情况,导致系统崩溃,同时完善用户体验下。测试的过程如下所示

网站的测试用例将以网站的核心功能展开详细阐述,一个核心功能点衍生一条测试用例。在执行测试用例过程中,需要测试人员严格遵守用例要求。接下来将对测试用例和测试结果进行详细阐述。

进入展示界面点击添加下拉框,分别录入符合网站提示要求和不符合网站提示要求的信息,最后点击保存,完成信息的添加测试。添加信息测试结果如表5-1所示。

进入用户展示界面点击待删除信息右侧删除按钮,根据网站提示,我们需要根据给出的提示主观的做出我们自己的选择进行点击删除和关掉的按钮,然后这样就完场了该网站的一个删除用户信息操作的测试。进行上述操作的结果如表5-2所示。

修改用户信息测试用例,测试人员登录管理员账户,点击用户管理中的用户展示功能,这样点击之后我们会来到一个用户展示的界面,来到这个界面后会出现一个按钮,这个按钮是用户信息的右侧的一个进行修改的标识,我们可以根据系统给出的一系列提示,把符合和不符合网站预先设定规则的一些信息进行一个改变的操作,进行点击修改,就会完成对仿微信聊天系统一些信息的修改动作。完成这些操作产生的结果如下:

查询用户信息测试用例,测试人员登录管理员账户,点击用户管理中的用户展示功能,进入用户展示界面点击查询下拉框,输入用户名称或者其他多个用户信息值,单击查询选项,就可在数据库之中模糊查询与之匹配的用户信息,进而完成用户信息查询测试。查询用户信息测试结果如表5-4所示。

5.2 测试结论

通过上述测试,对系统的各个测试用例,进行测试,得出仿微信聊天系统已经基本上完全没有功能性错误,系统稳定,可以维持用户使用,达到了上述需求分析要求,可以用于实际使用,图5-1数据流程图来说明。

图5-1 数据流程图

基于以上一系列的操作,仿微信聊天系统的要求基本达到标准,该系统具备基本的软件功能,简约舒适的用户界面,并能够正确处理错误,总体上软件达到上线标准。

6 总结

本文主要写在网站设计的几个步骤中。首先,必须简要介绍网站开发的背景、意义和开发方法。然后简要介绍了开发环境和开发网站所需的几种技术。技术支持对于开发小型网站至关重要,因此本章更为重要。在技术引进之后,我们需要进行一些必要的分析,主要包括可行性分析、数据分析、需求分析和小方案的维护分析。在制作网站时,合理的分析和计划是必不可少的,所以我们应该列出各种分析的简单清单。分析之后,是网站的设计。在他们自己的设计中,应该能够体现出他们对于网站开始想要提供的一些功能,并且应该给出是如何实现这些功能的以及使用这些功能的手段。本文重点介绍了网站的设计原理、工作原理、功能操作过程和数据库设计。在第四章中,通过对于本网站用到的数据库进行了描述,其次就是对于网站的结构,从而可以清晰的给读这篇论文的人一个清晰的画面感。第五章的话,重点介绍了关于网站的一些功能是如何表现出来的,在这个过程中可以让看这篇论文的人在本章中对网站的实现页面有一个切身的体会。设计完成后,对网站进行了测试。测试是软件生产后必不可少的过程,它可以使网站在未来的运行中更加稳定


    

时间总是飞逝,眨眼间的答辩结束意味着我的大学生涯已经画上了句号。但这只是我人生旅途远行的一小段路程。在此,我想首先感谢我的论文指导老师。他为我们论文的选题、大纲、格式等等提出了一系列严谨的要求,并运用他专业的知识和标准来指导我们的论文写作。在此过程中,从他的精心指导中我收益良多。

我也要感激所有传授我知识的各位老师。是你们日夜不懈的辛勤劳动,让我能够充分理解并掌握专业知识与技能,不断提高自我素质。在这段人生经历中,我也要感谢一路陪伴我的同学们。感谢你们的陪伴,我们一起度过了这段宝贵而美好的时光,祝福我们的友谊天长地久。

最后,我要感恩自己的父母。感谢他们为我的成长提供了温暖的成长环境,在生活上给予我最大程度的支持与关爱。对于我的个人发展和未来,他们总是默默地支持着我,让我有足够的勇气和信心去面对未来。

在此,我对这段美好时光充满了美好的回忆与感激,希望在未来的生活中,我能够用自己的力量回报这一切。

 

 

 


参考文献

【1】 刘威. AES算法在通信信息无损加密传输中的应用[J]. 信息与电脑(理论版),2022,34(17):80-82.

【2】 李温晗华,杨凯. 基于AES加密优化算法的组合加密方法[J]. 信息与电脑(理论版),2022,34(15):232-234.

【3】 谷天苓. 基于AES算法的电子通信加密认证系统设计[J]. 信息与电脑(理论版),2022,34(15):218-220.

【4】 叶翰文. 基于区块链的供应链溯源管理关键技术研究[D].扬州大学,2022.

【5】 周立. 光纤保密通信系统的设计、实现及性能分析[D].南京邮电大学,2021.

【6】 李一. 汽车CAN总线中的信息安全与通信协议研究[D].华东师范大学,2022.

【7】 牛鹏伟. 基于AES算法的通信数据加密传输系统设计[J]. 长江信息通信,2021,34(11):61-63+66.

【8】 刘晓玥. AES算法的电力通信数据加密传输方法[J]. 电子世界,2021,(20):176-177.

【9】 魏嘉鑫. 基于LoRa的光伏电站数据传输系统的设计与实现[D].西安理工大学,2021.

【10】 闫富朝. 基于北斗空时唯一性的空天地安全通信方法与实现[D].哈尔滨工业大学,2021.

【11】 梁晓雪. 基于AES算法的加密UART IP核设计与实现[D].西安电子科技大学,2021.

【12】 朱嘉桦. 基于AES算法的CAN总线加密认证通信IP核设计与实现[D].西安电子科技大学,2021.

【13】 邵检江. AES算法在舰船通信数据加密技术中的应用[J]. 舰船科学技术,2020,42(12):127-129.

【14】 江治国. AES算法在智能家居通信安全系统中的应用[J]. 吉首大学学报(自然科学版),2018,39(03):25-30.

【15】 龙辉. 基于ECC-AES混合加密的智能配电网安全通信方案设计[D].湘潭大学,2021.

【16】 佟铭. 基于FPGA的AES算法在语音加密通信中的实现[D].长春理工大学,2021.

【17】 魏嘉银,吕虹,秦永彬. 一种基于AES算法的通信信息加密传输方案[J]. 计算机与数字工程,2021,39(10):121-124.

【18】 张建. AES算法在端到端通信加密模块中的实现及应用设计[D].北京邮电大学,2021.








【山西警察学院毕业论文模板】基于AES算法的仿微信实时通信系统的设计与实现的评论 (共 条)

分享到微博请遵守国家法律