作者:zero__ | 来源:互联网 | 2024-12-20 08:38
课程:《程序设计与数据结构》
班级:1723
姓名:方艺雯
学号:20172314
指导教师:王志强
实验日期:2018年6月13日
课程性质:必修
1. 实验目标与要求
- 实验5-1: 结对编程任务,包括中缀表达式转后缀表达式及后缀表达式的求值。
- 实验5-2: 基于Java Socket实现客户端与服务器之间的通信,完成中缀表达式的转换与求值。
- 实验5-3: 在5-2基础上增加3DES或AES加密技术,确保数据传输的安全性。
- 实验5-4: 引入密钥分发机制,使用DH算法进行密钥交换,增强安全性。
- 实验5-5: 实现数据完整性的校验,确保数据在传输过程中未被篡改。
2. 实验过程与结果
2.1 实验5-1
过程:利用提供的MyBC和MyDC类实现中缀表达式转后缀表达式及后缀表达式的求值功能。通过编写Calculator类整合上述功能,实现了用户输入中缀表达式,系统自动转换并计算结果的功能。
结果:成功实现了中缀表达式向后缀表达式的转换及求值,验证了系统的正确性和可靠性。
2.2 实验5-2
过程:在实验5-1的基础上,开发了客户端与服务器之间的通信功能。客户端负责接收用户输入的中缀表达式,转换为后缀表达式并通过网络发送给服务器;服务器接收后缀表达式,计算其值并返回给客户端。
结果:客户端与服务器成功建立了通信,实现了表达式的远程计算功能,验证了网络编程的基本原理和技术。
2.3 实验5-3
过程:在5-2的基础上加入了3DES或AES加密技术,确保了数据在传输过程中的安全性。通过生成对称密钥,实现了数据的加密与解密。
结果:成功实现了数据的安全传输,确保了数据的机密性,验证了加密技术的有效性。
2.4 实验5-4
过程:引入了DH算法进行密钥交换,增强了系统的安全性。通过生成公钥和私钥,实现了密钥的安全交换。
结果:成功实现了密钥的安全分发,确保了数据在传输过程中的安全性和完整性。
2.5 实验5-5
过程:实现了数据完整性校验,确保数据在传输过程中未被篡改。使用MD5算法计算数据的摘要,客户端和服务器分别计算并对比摘要值。
结果:成功实现了数据完整性的校验,确保了数据在传输过程中的完整性,验证了数据校验技术的有效性。
3. 遇到的问题及解决方法
- 问题1:在实验5-3中,尝试发送密钥时,由于使用了不合适的分隔符导致错误。通过调整分隔符解决了问题。
- 问题2:遇到“connection reset”异常。通过检查服务器端口是否被占用、确保客户端与服务器端的正确连接顺序等方法解决了问题。
- 问题3:通过QQ发送密钥时,密钥被修改并添加表情。最终通过直接在程序中生成密钥并传输解决了问题。
4. 其他
通过本次实验,加深了对网络编程和安全技术的理解,尤其是对加密技术和数据完整性校验有了更深入的认识。虽然遇到了一些挑战,但最终都得到了解决,收获颇丰。
5. 参考资料
- 网络连接异常分析与解决方法
- Java加密算法概述
- 使用Java API生成MD5摘要