为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

密码工作聊天加密系统课程设计报告

2019-02-15 8页 doc 24KB 24阅读

用户头像

is_751406

暂无简介

举报
密码工作聊天加密系统课程设计报告设计题目  工作聊天加密系统 目  录 一、课程设计背景………………………………………………………………………4 二、设计方案……………………………………………………………………………4 1、总体设计情况…………………………………………………………………4 1.1服务器端 ………………………………………………………………4 1.2客户端 …………………………………………………………………4 1.3聊天系统工作原理图 …………………………………………………4 2、各功能模块设计情况…………………………………………………………5...
密码工作聊天加密系统课程设计报告
题目  工作聊天加密系统 目  录 一、课程设计背景………………………………………………………………………4 二、设计方案……………………………………………………………………………4 1、总体设计情况…………………………………………………………………4 1.1服务器端 ………………………………………………………………4 1.2客户端 …………………………………………………………………4 1.3聊天系统工作原理图 …………………………………………………4 2、各功能模块设计情况…………………………………………………………5 2.1聊天服务器窗口 ………………………………………………………5 2.2登录聊天室和聊天室注册窗口 ………………………………………5 2.2.1基本功能 ………………………………………………………5 2.2.2 DES加密 …………………………………………………5 2.3用户聊天室窗口 ………………………………………………………6 2.3.1基本功能 ………………………………………………………6 2.3.2 DESede和HmacMD5加密方法 ……………………………6 三、方案分析 …………………………………………………………………………8 1、安全性分析 …………………………………………………………………8 2、安全强度 ……………………………………………………………………8 3、运行效率 ……………………………………………………………………8 四、设计成果……………………………………………………………………………8 1、总体情况 ……………………………………………………………………8 2、本人任务 ……………………………………………………………………9 3、运行界面 ……………………………………………………………………9 3.1启动服务器 ……………………………………………………………9 3.2用户注册………………………………………………………………10 3.3用户登录………………………………………………………………12 3.4  用户聊天室 …………………………………………………………14 五、总结…………………………………………………………………………………16 一、课程设计背景 随着网络信息时代的到来,给人们带来了很多便利,人们都渐趋足不出户,做什么事都尽量通过网络来实现。自然网聊也就成为人们沟通的主流方式,并且网聊是免费的,这是受欢迎的主要原因之一,此外,网聊还可以视频语音等,比一般通讯工具方便省事多了,因此得到很多人的青睐。而对于工作的人来说更是必要,但是网聊问题也随之而来,主要体现在信息传输的安全上,有些信息并不是公开的,尤其是一些机密的信息,这就使得人们开始关注信息传输安全问题,故设计出一款具有加密功能的聊天系统迫在眉睫、刻不容缓。所以我们开发了一个工作聊天系统,该系统是基于开放的JAVA应用程序开发设计的,结合密码学的加密算法在java中的实现。其主要特性是能动态、实时的、安全的完成信息的传递,且具有高效的交互性,更有效的处理客户请求,易于维护和更新,且具有加密解密功能。 二、设计的方案 1、总体设计情况 1.1服务器端 (1)服务器端应当建立一个ServerSocket,并且不断进行侦听是否有用户客服端连接或者断开连接,即用户的登录时间。而且还可以计算在线人数,踢掉非法用户。服务端得实现体现在聊天服务器窗口上,可以保存日志,向用户发送系统消息。 (2)服务器端应当是一个信息发送和接受中心,也就是一个中转站。所有客户端的信息都传到服务器端,由服务器端根据要求分发信息。且服务器接受和发送的都是由客服端加密后东西。这样保证了消息传送的安全性。 以上就是服务器端最主要的两个任务。不难看出,服务器端的任务并不复杂。 1.2客户端 客户端应该完成的工作包括: (1)加密自己要发送的信息,且要发送消息验证码和防重放的随机数。 (2)与服务器端建立通信通道,向服务器端发送加密后的信息。 (3)接收来自服务器的信息。 相对服务器而言,客户端的任务主要就是保证消息的安全性、保密性、完整性等, 1.3聊天系统工作原理图 2、各功能模块设计情况 2.1、聊天服务器窗口 (1)服务器管理页签:显示服务器的当前状态,如是否启动、在线人数、服务器名,访问,服务器IP、服务端口号、服务器日志、保存日志等。启动本机为服务器端。 (2)用户信息管理页签:显示用户相互发送的信息(密文)、在线用户列表,给用户发送系统消息、踢人等 2.2、登录聊天室窗口和聊天室注册窗口 2.2.1基本功能 实现密码的加密存储管理和身份验证。 已注册用户可以直接用自己的用户名和密码登陆。未注册用户可先进行注册。 用户认证功能:新用户在注册时,会判断用户名是否存在,口令两次输入是否相同,年龄和电子邮件是否符合规格要求。当一切满足条件后,用户用自己的用户名作生成自己的密钥来加密自己的口令,然后把加密好的密文传给服务器。 2.2.2加密方法 这里采用DES加密方式。 DesEncrypt  des=new DesEncrypt(); des.getKey(pwdUserPassword.getText());  data.custPassword = des.getEncString(pwdUserPassword.getText()); 采用的是DES加密方法,调用到DesEncypt()类中的函数如下: public void getKey(String strKey) { try { KeyGenerator _generator = KeyGenerator.getInstance("DES"); _generator.init(new SecureRandom(strKey.getBytes())); this.key = _generator.generateKey(); _generator = null; } catch (Exception e) { e.printStackTrace(); } } public String getEncString(String strMing) { byte[] byteMi = null; byte[] byteMing = null; String strMi = ""; try { return byte2hex(getEncCode(strMing.getBytes())); } catch (Exception e) { e.printStackTrace(); } finally { byteMing = null; byteMi = null; } return strMi; } 这样就完成了存储保密码保护,注册后的用户要登录时,同样调用该类,然后用用户名生成密钥,对口令加密,从服务器读取注册时传输过去的密文。两者进行匹配,相同的话就可以登录。这样就完成了用户认证,且每个用户的注册信息都会以密文的形式存储在服务器。当用户改用户名时,其密码也改变,这样可以保证密码的安全可用性。 2.3、用户聊天室窗口 2.3.1基本功能 可以显示在线人数,用户可以对所有人发送信息,也可以选中一个用户进行私聊。在聊天面板会显示你的所有聊天,当然你也可以采用清屏把屏幕清空。保存按钮可以保存聊天记录在本地的文件上。还可以设置聊天信息框里面的字体、大小、颜色等。最关键的是发送按钮,在聊天内容文本框里面输入要发送的消息。用户A可以先把自己要发送的信息进行,再传输给服务器,服务器把消息发送给指定的用户B,用户再通过密钥进行解密。 2.3.2 DESede和HmacMD5加密方法 实现消息的加密,完整性检查和防重放的功能: 用户A加密消息:采用的是DESede加密算法,CBC加密模式,PKCS5Padding填充方式。用户先把信息和用户B的随机数number加密后密文存在log.txt文件里,然后读取文件的密文内容传入服务器。服务器把密文传给指定用户B, try {    Random r=new Random(); int number= r.nextInt(); new SEncCBC(txtMessage.getText()+"\n"+"随机数:"+number);//对文本框的内容进行加密 FileInputStream f2=new FileInputStream("log.txt"); //将文档中存放的加密的内容读取出来 InputStreamReader dis=new InputStreamReader(f2); BufferedReader reader=new BufferedReader(dis); String s=reader.readLine(); chatobj.chatMessage = s;    //将密文s赋给chatobj.chatMessage dis.close();}catch(IOException e){}    用户B把从服务器读取的密文进行解密,然后把消息显示在自己的用户聊天室界面      try{  // 获取初始向量 FileInputStream f=new FileInputStream("log.txt"); byte[] rand=new byte[8]; f.read(rand); IvParameterSpec iv=new IvParameterSpec(rand); //获取密文
/
本文档为【密码工作聊天加密系统课程设计报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索