操作系统蓝牙加密解密实验报告.docx
- 文档编号:12689049
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:14
- 大小:288.12KB
操作系统蓝牙加密解密实验报告.docx
《操作系统蓝牙加密解密实验报告.docx》由会员分享,可在线阅读,更多相关《操作系统蓝牙加密解密实验报告.docx(14页珍藏版)》请在冰点文库上搜索。
操作系统蓝牙加密解密实验报告
湖南师范大学工程与设计学院
操作系统实验报告
姓名:
王秀珍
年级:
2013级
专业:
计算机科学与技术(师范)
学号:
2013180524
任课教师:
付松龄
开课时间:
2014~2015学年第二学期
操作系统实验
实验时间
2015年6月11日~2015年6月25日
实验地点
湖南师范大学工程与设计学院前栋403
实验要求
1、需结合本学期所学的操作系统课程知识,
2、可以多人组队做一个大实验
3、每个人交一份报告和相关源代码
本实验概况
实验题目
实验题目
实验环境
开发环境:
硬件环境:
X64PC机;
软件环境:
Windows(64位)、myeclipse10.1、jdk.win32.x86_64_1.6.0.013,ADT-23.0.0;
运行环境:
硬件环境:
Android智能手机;
软件环境:
Android4.4及4.4以上
实验简介
本实验通过完成蓝牙互联通信的开发进一步理解了操作系统课程中数据加密、数据解密、数字签名、签名识别以及数字证明等相关知识。
在实验过程中,我们首先进行前期准备,针对蓝牙互联方面的通信进行讨论,确定本实验的功能;在进行讨论期间对操作系统、java编程语言的基础学习;最后根据实验流程完成各自任务,最后再进行合并实现本实验的蓝牙互联通信。
从实验结果来看,为了实现数据的保密性,操作系统采用进程通信和信息保护,向系统调用mssgsend指定的消息消息队列发送消息,如果需要共享这类信息,则需要建立一个共享存储区,若成功则以后可以通过它进行访问。
一.
实验目标
本实验的目标是通过开发蓝牙互联,进一步理解操作系统中的数据加密、数据解密、数字签名、签名识别以及数字证明等相关知识。
主要功能就是通过蓝牙进行通信,提供文字传输,像QQ聊天软件中简单聊天一种功能,它的特色在于不需要通过联网的情况下进行通信。
我在本次实验中主要负责的是蓝牙互联中的数据加密解密。
1、数据加密解密的实验目标是通过系统输入文字,然后解密后还是原文;
2、在加密解密的过程中包括任何一种字符,都能进行传输。
二.实验背景
当今社会是一个信息化的、社会,信息安全已经深入到人们工作生活的每个角落,人们对信息安全的需求与日俱增。
蓝牙技术是为了实现以无线电波替换移动设备所使用的电缆而产生的。
以相同成本和安全性完成一般电缆的功能,从而是移动用户摆脱电缆束缚,其技术本来的目的就是用于互连小型移动设备及其外设,其功耗低、体积小的特点,以便于携带,这也是蓝牙互联持续发展迅速的原因。
随着科学和技术的发展,传统的邮信、座机电话、智能手机技术都已经不能解决现代人的需求了,只能手机发展的很快,我们可以通过它打电话、发短信、上网等一切便捷的事,但是,这并不意味着有了这些技术,所有的问题就得到解决了。
比如存在以下一些漏洞:
1)、网络流量。
人们对于手机的要求越来越高,偏好于轻薄型,功能强大,而学生则希望用户发短信不用收取流量费用2)、手机不足以提供安全保护(虽然前者有访问控制的权限)。
在不同层次的软件系统中有不同的操作对象。
对于这些对象的保护很难最终实现。
3)重要信息的泄漏。
对于敏感数据(比如信用卡信息、用户密码等),保障数据安全需要采用数据加密技术将机密数据加密,这样就可以避免因人为因素或被截取等各种原因造成机密信息的泄漏。
三.实验基本思路
本项目分为
一、将数据的加密解密;
二、信息的发送与接收;
三、数据的通讯由(界面及数据打包,蓝牙点对点数据通道,蓝牙快速配对)。
基于windows系统,数据的加密解密,由本人负责。
概要设计
1、程序所要引入的包:
Importjava.awt.*;//包含用于创建用户界面和绘制图形图像的所有类;
importjava.awt.event.*;//提供处理AWT组件所激发的各类事件的接口和类。
importjava.security.*;//为安全框架提供类和接口。
importjavax.cypto.*;//为cyptographic(加密)操作提供类和接口
importjava.cypto.spec.*;//为密匙规范和算法参数规范提供类和接口
2、系统模块流程图
图1
根据蓝牙特性,同其他无线信号一样,蓝牙信号很容易被截取,因此蓝牙协议提供了认证和加密功能,以便保证链路级的安全。
系统模块设计思想,如图1。
通过实例化蓝牙设备以及配对蓝牙设备,然后讲A端数据加密后发送通过开辟的蓝牙通道发送到B端,最后B端响应发送的数据进行收发短信。
详细设计
1、各程序模块之间的层次(调用)关系
1)蓝牙与终端互联
图2
一个蓝牙连接需要一个客户端与一个服务端。
服务端只需要建立一个蓝牙服务,并将此服务对应的地址打开即可。
每个蓝牙服务对应一个128位的UUID来进行标识。
客户端需要打开蓝牙搜索相关设备与服务并进行连接即可,具体过程如图2所示。
2)信息处理各层调用流程图
其功能展示:
(程序源代码见附录1)
主函数模块:
生成加密框架;获取数据的输入;调用加密或解密函数。
加密模块:
启动加密操作,显示操作结果,并在同一文件夹下生成密文。
解密模块:
判断是否接受,启动解密操作,显示操作结果,并生成明文。
图3
图3主要功能是通过连接蓝牙后,可发送加密数据,在接受方即解密。
(本人负责模块)
3)蓝牙接受其他蓝牙设备推送文件的流程图
图4
蓝牙广播站启动时,如果发现配置中允许监听其他蓝牙设备的信息推送请求,则启动SDP服务程序,并注册一个ObjiectPush服务,该服务的RFCOMMChannel是10.然后。
蓝牙广播站启动建立一个蓝牙监听端口,监听连接请求,其站会发出一个允许推送的回应,就开始接收信息,并储存。
其具体过程如图4。
四、实验结果
图5开启蓝牙并配对蓝牙
图7发送信息
图8接受信息
加密解密模块实验测试成果:
图7纯文字加密解密测试
图8特殊字符测试
图9蓝牙互联后信息加密发送并成功解密接受
五、实验总结
在程序设计之初,有考虑的是如何实现DES算法,但是由于本身学习java知识不够,对于DES加密算法理解上有点困难,而且发现DES算法对于本次小程序来说,有点确过于繁琐,所以当我发现采用简单的java算法----异或算法也可实现本功能,而且大大减少了工作量。
这次操作系统课程设计,本组对于我的要求并不多,只要实现加密与解密功能,而且是根据自身的学习情况来做这次实验,但是为了本次课程设计,我也搜索了大量的资料,并根据课堂上,书本上,私底下跟老师讨论讲过的知识,结合自身主观和客观因素,制定了本次课程设计的目标,完成了此次设计。
通过本次的课程设计,我知道了许多自身存在的不足,例如仅掌握了一种加密算法,而且还是最简单的一种加密算法,对着这么一个简单的算法还没有完全完善,感觉有点羞愧。
在日益发达的社会商业等领域,加密解密需要做的还非常多,并且Java领域博大精深,我现在只是学到了它的一点皮毛而已,所以还需多多努力。
但是通过这些我还是学到了很多东西,先不说其他的,我最起码最基础的加密算法,巩固了学习的知识,也学习到了新的知识,而且以后可以运用到自己想要保密的数据当中去。
课程设计虽然暂告一个段落,但我学习Java的步伐不会终止。
Java语言具有简单、安全、可移植、面向对象、健壮、多线程、体系结构中立、解释执行、高性能、分布式和动态等主要特点。
而且,我觉得随着科技的不断进步,Java语言的优越性会不断地被挖掘出来,因为Java语言也是有生命的,它是不断被人们的需求演变的越来越强大,这些,我觉得不言而喻。
但往后,我想只有在不断的使用以后才能体会到,在发现Java拥有秘密密钥工厂后更是感受到它的强大。
Java的JDK对于使用Java编程是非常有帮助的,在我们编程过程中,遇到的一些不清楚的地方,都是靠它才得以解决,同时对Java语言的了解也更方便、深入了。
附录1
importjava.awt.*;//包含用于创建用户界面和绘制图形图像的所有类;
importjava.awt.event.*;//提供处理AWT组件所激发的各类事件的接口和类。
importjava.security.*;//为安全框架提供类和接口。
importjavax.cypto.*;//为cyptographic(加密)操作提供类和接口
importjava.cypto.spec.*;//为密匙规范和算法参数规范提供类和接口
importjava.util.Scanner;
publicclasshello1{
//加密
publicstaticStringencrypt(Stringword,Stringsecretkey)
{
Stringstring="";
try{
word=newString(word.getBytes("UTF-8"),"iso-8859-1");
}catch(Exceptione){
}
char[]cipher=newchar[word.length()];
//开辟一个与输入字符串相同长度的字符数组
for(inti=0,j=0;i { if(j==secretkey.length())j=0; cipher[i]=(char)(word.charAt(i)^secretkey.charAt(j));//异或 Stringstr=Integer.toHexString(cipher[i]); //整数转换成字符串 /*java中一个字节为8位,而int为32位,故需要用cipher[i]&0xFF来掩掉其他多余24位*/ if(str.length()==1) string='0'+str;//统一格式 else string=string+str; } returnstring; } //解密 publicstaticStringdecrypt(Stringencryption,Stringsecretkey){ char[]decryption=newchar[encryption.length()/2]; for(inti=0,j=0;i { if(j==secretkey.length())j=0; charn=(char)(int)Integer.valueOf(encryption.substring(i*2,i*2+2),16);//将已给十六进制数转换成字符 decryption[i]=(char)(n^secretkey.charAt(j)); } Stringdecoding=""; try{ decoding=newString(String.valueOf(decryption).getBytes("iso-8859-1"),"UTF-8"); }catch(Exceptione){ } returndecoding; } publicstaticvoidmain(String[]args){ Scannerscan=newScanner(System.in);//定义从系统缓存读取数据 System.out.printf("请输入wordsecretkey: "); Stringword=scan.next();//输入语句 Stringsecretkey=scan.next();//密钥 Stringencryption=encrypt(word,secretkey);//异或加密 System.out.println("密文: "+encryption); Stringoriginal=decrypt(encryption,secretkey);//解密 System.out.println("原文: "+original); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 蓝牙 加密 解密 实验 报告