毕业设计(论文)-基于android的移动终端简易加解密系统.doc_第1页
毕业设计(论文)-基于android的移动终端简易加解密系统.doc_第2页
毕业设计(论文)-基于android的移动终端简易加解密系统.doc_第3页
毕业设计(论文)-基于android的移动终端简易加解密系统.doc_第4页
毕业设计(论文)-基于android的移动终端简易加解密系统.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目 录摘要:2abstract:21绪论31.1本系统研究的意义31.2课题的可行性分析31.2.1技术可行性31.2.2应用可行性32技术介绍32.1android的历史32.2android技术42.3几种手机操作系统的比较52.4android的发展前景62.5java简介73移动终端简易加解密系统设计73.1系统结构73.2系统环境83.3系统简要分析83.4加解密设计93.4.1加解密所需环境93.4.2加解密所需环境93.4.3加解密功能表93.4.4详细设计103.5整体设计113.5.1encryptunencrypt.java113.5.2encryptui.java123.5.3main.xml143.5.4strings.xml153.6移动终端简易加解密系统运行图164总结18致 谢19参考文献19移动终端简易加解密系统摘要:信息产业发展迅速,手机产业发展,移动互联网日益普及,催生了各类手机应用的诞生,随着3g时代的到来,技术支持的高度提升势必引发手机应用行业的急速增长。但如何保证个人移动电话的信息安全,保证个人的隐私不被侵犯成为了一个迫切需要解决的问题。现在的手机操作系统一般分为symbian操作系统,linux操作系统,windows mobile操作系统,android操作系统等,本论文采用android操作系统,因为其开放的特性为我们在程序设计时提供了更大的自由度。本系统中手机用户能对所需文件(明文)进行加密,生成密文,当用户需要查询文件时,可以通过密钥将密文转化成原始密文。所需开发工具开发工具android sdk, jdk 1.6.20, eclipse 3.5, android adt 0.9.7。关键字:移动终端,加密,解密, androidmobile terminal simple encryption systemabstract: the rapid development of information industry and mobile phone industry, and the increasing popularity of mobile internet, spawned the birth of various mobile phone applications.as the 3g era coming, a high degree of technical support will inevitably lead to the rapid growth of mobile phone applications industry. how to protect the safety of information in personal mobile phone, how to protect the users secrety out of the risks is becoming an emergent problem. the current mobile phone os includes mainly symbian os mobile operating systems, linux operating system, windows mobile operating system, android operating system. in this paper, android operating is used, because of its open design of our program to provide greater freedom degrees. in the proposed system, the user of mobile phone users can encrypt the required documents (plaintext) to produce ciphertext; moreover, when users need to check documents, they can use a key to decrypt the ciphertext into the original ciphertext. development tools are android sdk jdk 1.6.20, eclipse 3.5 and android adt 0.9.7.keywords:mobile terminal,encryption,decrypt,android201 绪论1.1 本系统研究的意义目前我国拥有七亿多的手机用户,这一庞大的用户群体,正遭受手机信息资料泄密的苦恼,在现代高速发展的社会,一个信息,可以左右企业的成败,这个信息在自己手里是王牌,在对手手里是炸弹。因此如何保护个人信息安全,尤其是我们日常生活中不可或缺的手机的信息安全,越来越让人关注,就像电影手机那样的事情,可能让人好笑的同时,也能让人反思,而加解密可以很好的解决这样的难题,这样类似于密保的功能也提上了手机发展的舞台上来,移动终端简易加解密系统就是基于这样的发展趋势被提上了日程。1.2 课题的可行性分析1.2.1 技术可行性android是基于linux内核的操作系统,早期由google开发,后由开放手机联盟开发。它采用了软件堆层的架构,主要分为三部分。底层以linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以java作为编写程序的一部分。另外,为了推广此技术,google和其它几十个手机公司建立了开放手机联盟。android在未公开之前常被传闻为gphone。目前最新版本为android2.2。2010年谷歌开发者大会上,android2.2发布,名称为froyo,意为冻酸奶1。1.2.2 应用可行性随着经济的腾飞和科技的发展,目前我国的手机用户已经达到了七亿多,android操作系统已经在中国取得了不错的成绩,为进一步打开市场做好了准备,相信未来android在移动发面将占据更加重要的份额 2。 2 技术介绍2.1 android的历史android一词的本义指“机器人”,同时也是google于2007年11月5日宣布的基于linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件3。2008年9月22日,美国运营商t-mobile usa在纽约正式发布第一款google手机t-mobile g1。该款手机为台湾宏达电代工制造,是世界上第一部使用android操作系统的手机,支持wcdma/hspa网络,理论下载速率7.2mbps,并支持wi-fi。 android平台的研发队伍阵容强大,包括google、htc(宏达电)、philips、t-mobile、高通、魅族、摩托罗拉、三星、lg以及中国移动在内的34家企业,都将基于该平台开发手机的新型业务,应用之间的通用性和互联性将在最大程度上得到保持。“开放手机联盟”表示,android平台可以促使移动设备的创新,让用户体验到最优越的移动服务,同时,开发商也将得到一个新的开放级别,更方便的进行协同合作,从而保障新型移动设备的研发速度。34家企业的加盟,也将大大降低新型手机设备的研发成本,完全整合的“全移动功能性产品”成为“开放手机联盟”的最终目标。这34家企业中并不包含把持symbian的诺基亚,以及凭借着iphone风光正在的苹果公司,美国运营商at&t和verizon,当然微软没有加入,独树一帜的加拿大rim和他们的blackberry也被挡在门外。 android最震撼人心之处在于手机系统的开放性和服务免费。android是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了iphone等只能添加为数不多的固定软件的枷锁;同时与windows mobile、symbian等厂商不同,android操作系统免费向开发人员提供,这样可节省近三成成本。这也使得android在中国的前景十分广阔!2.2 android技术android 是一种基于 linux v2.6 内核的综合操作环境,android 是一个分层的环境,构建在 linux 内核的基础上,它包括丰富的功能。ui 子系统包括:1、 窗口视图用于显示一些常见组件(例如编辑框、列表和下拉列表)的小部件。 android 包括一个构建在 webkit 基础上的可嵌入浏览器,iphone 的 mobile safari 浏览器同样也是以 webkit 为基础。 android 提供多种连接选项,包括 wifi、蓝牙和通过蜂窝(cellular)连接的无线数据传输(例如 gprs、edge 和 3g)。android 应用程序中一项流行的技术是链接到 google 地图,以便在应用程序中显示地址。android 软件栈还提供对基于位置的服务(例如 gps)和加速计的支持,不过并不是所有的 android 设备都配备了必需的硬件。另外还有摄像支持。 过去,移动应用程序努力向桌面应用程序看齐的两个领域分别是图形/媒体和数据存储方法。android 通过提供对 2d 和 3d 图形的内置支持,包括 opengl 库,解决了图形方面的挑战。由于 android 平台包括流行的开源 sqlite 数据库,因此缓解了数据存储的负担。图1 显示一个简化的 android 软件层次结构。图1 android 软件层次结构android 运行在 linux 内核上。android 应用程序是用 java 编程语言编写的,它们在一个虚拟机(vm)中运行。需要注意的是,这个 vm 并非您想象中的 jvm,而是 dalvik virtual machine,这是一种开源技术。每个 android 应用程序都在 dalvik vm 的一个实例中运行,这个实例驻留在一个由 linux 内核管理的进程中,如下图所示。图2 dalvik vm2.3 几种手机操作系统的比较各种手机不同操作系统比较l symbian操作系统:(uiq、series60、series80、series90)特点:symbian是一个实时多任务的纯32位操作系统,具有功耗低、内存占用少等特点,非常适合手机等移动设备使用。其缺点是在多媒体等方面的表现不尽如人意,且对主流媒体格式的支持性较差。symbian os虽然采用多种平台,但各个平台之间第三方软件不兼容,给用户带来一定不便。代表机型:s60: nokia9210,n93,n95等s80:nokia9300,9500等symbian uiq索尼爱立信p802,m608l linux操作系统:特点: linux具有稳定、可靠、安全等优点,有强大的网络功能。linux有源代码开放,有利于独立软件开发商开发出硬件利用效率高、功能更强大的应用软件。linux对先进的语音和数据应用有很好的拓展潜力。linux在手机市场的不足在于其对内存的要求相对较大,能耗管理系统没有为移动设备优化。另外,linux的系统启动时间较长,开发界面不直观。代表机型:摩托罗拉公司的a系列商务手机和e系列部分娱乐手机,如a780、e680系列、e2等l windows mobile操作系统:特点:windows mobile系列操作系统与pc的windows操作界面非常相似,功能强大。该操作系统的智能手机在硬件配置(如处理器、内存、储存卡容量等)上较采用其它操作系统的智能手机要高出许多,因此性能比较强劲,操作起来速度会比较快。但此系列手机的缺点是因配置高、功能多而产生耗电量大、电池续航时间短、硬件成本高等缺点。代表机型:smartphone:多普达595,摩托罗拉q智能手机,pocket pc phone:多普达900,830l rim操作系统:特点:rim操作系统基于java平台,运行极为稳定流畅,对java软件兼容能力强,也有不错的软件资源。代表机型:黑莓手机l mac os x操作系统:特点:mac os x使用基于bsd unix的内核,并带有unix风格的内存管理和抢占式多任务处理,大大改进内存管理,允许同时运行更多软件,且实质上消除了一个程序崩溃导致其它程序崩溃的可能性。且具有极度华丽图形用户界面、极高的运行效率和稳定安全性。其不足在于mac osx是一套封闭的操作系统,不允许第三方开发软件运行代表机型:苹果iphonel palm操作系统:特点:palm os是一种32位的嵌入式操作系统,它的操作界面采用触控式,几乎所有控制选项都排列在屏幕上,使用触控笔便可进行所有操作。作为一套极具开放性的系统,开发商向用户免费提供palm操作系统的开发工具,允许用户利用该工具在palm操作系统的基础上编写、修改相关软件。palm os的最大优点就是简单易用,占用系统资源少,但缺乏多媒体和通信功能,相当产品还是英文界面,只是使用外挂中文平台。代表机型:palm treo 650,treo680等l 开源移动操作系统android:特点:谷歌的os是完全开放的,几乎能在所有硬件上运行,充分地开放和自由ui,完全的原始代码。其特点是完全开放性以及广泛综合性。代表机型:gphone总体来说,symbian太强势,windows mobile太昂贵,iphone太封闭,都是相比android存在的弱点,可以说在android面前有着巨大的机遇和挑战4。2.4 android的发展前景对android来说,最大的特点就是具有开源性。其特点在于改变以往由少数软件大厂垄断系统软件平台的现况,让众多内容开发商和开放软件供货商来分享共同利益,极大地增进了客户使用经验。android有别于以往的手机及移动终端操作系统,它独特的开源和开放性,获得了广大开放社群的认可,并为其提供稳定且持续更新的支持;同时它又和移动互联网紧密相连,使得开放人员更加容易见互联网应用移植上来;此外,它还让厂商、运营商、甚至用户本人都能很方便的进行全方位的定制或配置。因此,在android的未来发展中,我认为发展前景将是一片光明。与此同时,人们也应该注意到桌面linux和其他移动linux系统的教训,linux是最为开放性的平台,但是由于太过开放,导致厂商和运营商各自为政,没有一个核心的领导者来统一标准,以至于最终没有能够成为主流。相对于linux来说,android相对克服了这样的问题,因为google公司始终是做为一个产业的领导者,带动其他运营商向前发展。在android之前,各大手机厂商都要投入巨资研发自己的手机操作系统,而由于手机操作系统的封闭性,又不得不自己开发所有的应用软件,直接导致了手机研发、管理、生产、销售各个环节的高费用和拖沓。而由google主导的“开放手机联盟”推出的android系统规范了linux系统下混乱不堪的平台标准,手机操作系统本身是开源的,绝大多数应用软件又都由世界各地的开发人员完成的,大大降低了厂商的研发费用,受到3g时代众多厂商和运营商的追捧5。android 作为一个智能手机操作系统,能够提供很多适合于3g新的功能,如手机视频、可视通讯、基于位置的服务、视频播客等,这些服务,将极大地丰富和提高用户体验。在国外,android手机正在世界各地遍地开花;在国内,中国移动、中国电信、中国联通都已加入手机开放联盟,并将开发基于android平台的手机设备和推出支持android平台的移动服务。这些举措,都将对中国的3g手机产业链产生深远的影响随着android技术的成熟,越来越多的企业将会加入到android的阵营中来,并开发出各色各样的3g应用来,这将会极大地促进3g的发展6。2.5 java简介java是一个长期广泛使用的网络编程语言,他是一种新的计算机概念,首先作为一种程序设计语言,他简单,面向对象,不依赖于机器的结构,具有可移植性,安全性,并且提供了开发的机制,具有很高的性能7。其次,他最大限度的利用了网络java的小应用程序(applet)可在网络上传输而不受cpu和环境的限制,另外,java还提供了丰富的类库,使程序设计者可以很发辫的建立自己的系统8。 3 移动终端简易加解密系统设计3.1 系统结构android的系统架构和其操作系统一样,采用了分层的架构。从架构图看,android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层9。图3-1 android系统架构 3.2 系统环境本系统是基于android平台下编写的,系统对运行环境的要求:linux 2.6内核平台,或windows 2000以上及mac平台开发工具android sdkjdk 1.6.20eclipse 3.5android adt 0.9.7基于android 2.2平台运行103.3 系统简要分析本系统的主要使用者为手机用户,系统用例图3-2如下图3-2 系统用例手机用户对所需文件(明文)进行加密,生成密文,当用户需要查询文件时,可以通过密钥将密文转化成原始密文。3.4 加解密设计3.4.1 加解密所需环境linux 2.6内核平台,或windows 2000以上及mac平台3.4.2 加解密所需环境在本系统中主要通过变换和置换等各种方法将被保护信息置换成密文,然后再进行信息的存储,即使加密信息被别人窃取,也可以保证这部分信息不为人所知11。3.4.3 加解密功能表表3-1 加密解密组件功能表12方法名描述encrypt(bytesrc,bytebytkey)加密字符串时以字节形式输入,bytkey为密钥,长度必须是8的倍数输入src将需要加密的字符串以二进制的形式输入,bytkey将密钥以二进制的形式输入输出return byte返回加密后的二进制数组decrypt(byte sty,byte bytkey)解密字符串时以字节形式输入,bytkey必须为8字节,是解密的密钥输入str将需要解密的密码以二进制形式输入输出return string返回加密后的二进制数组decryt(string str)密码解密输入str将密码以字符形式输入输出return string输出解密后的密码encrypt(string str)密码加密输入str将密码以字符形式输入输出return string返回转化后的字符串byte2hex(byte b)二进制转字符串输入b将数据源以二进制形式输入输出return byte 返回转化后的字符串byte2hex(byte b)判断密钥,长度必须是8的倍数输入b将数据源以二进制形式输入输出return byte 返回转化后的字符串3.4.4 详细设计加解密算法分为两种:受限的安全算法和非限的安全算法13。本程序采用的是非受限的安全算法,数据通过加密密钥进行加密,在解密的时候必须通过相应的解密密钥才能得到原始明文。下面通过一个test测试类来实现对文件的加密解密14。 package smart.jrsoft.util;public class test/测试用例,不需要传递任何参数,直接执行即可public static void main (string args) string str1123; /密钥 /调用不可逆加密组件里的文件加密,方法,对文件进行加密,解密 encryptutil eunew encryptutil();/执行方法,并打印结果, /加密后生成.jsmt文件 system.out.println(加密文件是:eu.encryptfile(e: 123123.tet,str1)/对加密后.jsmt文件进行解密 system.out.println(解密文件是:eu.encryptfile(e: 123123.tet.jsmt,str1);/class is over. 对文件加密前,想好一个密码,然后把密码和要加密的文件传入加密算法中,加密成功后会在原文的同级目录里生成扩展名为.jsmt的文件,如e: 123123.tet加密后生成e: 123123.tet.jsmt文件。 文件解密前确保被解密文件的扩展名正确,其次不要忘记解密密码15。 加解密效果图图3.3 加解密效果图3.5 整体设计3.5.1 encryptunencrypt.javapackage com.android.encrypt.al;public class encryptunencrypt public static string hoveryrc4(string ainput, string akey) int is = new int256;byte ik = new byte256;for (int i = 0; i 256; i+)isi = i;int j = 1;for (short i = 0; i 256; i+) iki = (byte) akey.charat(i % akey.length();j = 0;for (int i = 0; i 255; i+) j = (j + isi + iki) % 256;int temp = isi;isi = isj;isj = temp;int i = 0;j = 0;string routput = ;short imask = 15;char iinputchar = ainput.tochararray();char ioutputchar = new chariinputchar.length;for (short x = 0; x 256; i+) i = (i + 1) % 256;j = (j + isi) % 256;int temp = isi;isi = isj;isj = temp;int t = (isi + (isj % 256) % 256;int iy = ist;char icy = (char) iy;ioutputcharx = (char) (iinputcharx icy);return new string(ioutputchar); 本模块的主要任务是对字符串进行加解密163.5.2 encryptui.java package com.android.encrypt.ui;import java.io.unsupportedencodingexception;import com.android.encrypt.al.base64;import android.app.activity;import android.os.bundle;import android.view.view;import android.view.view.onclicklistener;import android.widget.button;import android.widget.edittext;import android.widget.textview;public class encryptui extends activity private edittext getcodeedittext;private edittext getcipheredittext;private button producebutton;private button enproducebutton;private textview codetextview;private textview ciphertextview; /* called when the activity is first created. */ override public void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate); setcontentview(r.layout.main); getcodeedittext = (edittext)findviewbyid(r.id.code_edittext); getcipheredittext = (edittext)findviewbyid(r.id.cipher_edittext); producebutton = (button)findviewbyid(r.duce_button); enproducebutton = (button)findviewbyid(r.id.enproduce_button); codetextview = (textview)findviewbyid(r.duced_textview); ciphertextview = (textview)findviewbyid(r.id.enproduced_textview); producebutton.setonclicklistener(new onclicklistener() public void onclick(view v) string getcodestring = getcodeedittext.gettext().tostring(); getcipheredittext.settext(base64.encode(getcodestring.getbytes(); codetextview.settext(getcipheredittext.gettext(); ); enproducebutton.setonclicklistener(new onclicklistener() public void onclick(view v) try ciphertextview.settext(new string(base64.decode(getcipheredittext.gettext().tostring(); catch (unsupportedencodingexception e) ciphertextview.settext ); 本模块主要对界面元素初始化173.5.3 main.xml本模块主要对主界面布局183.5.4 strings.xml 欢迎使用 请输入明文/string 生成的密钥/stringandroid字符串加密解密小工具本模块标签映射值,和main配合使用193.6 移动终端简易加解密系统运行图1启动android模拟器emulator -avd plat22/palt22为机器上已经建立的模拟平台202启动之后的界面就如一个手机模拟的图样,非常方便我们在上面设计添加功能组件,如图3.4所示图3.4 启动时的界面3运行后大概25秒左右将会出现整个手机模拟的样式,如图3.5所示图3.5 运行中出现的界面4在明文一栏输入“中南民族大学”点击生成密文,将会在生成密文一栏生成已经加密的信息,对密文解析,点击解析密文,会在下面生成密文,明文一栏,经过对照,本系统符合要求。最终生成界面如图3.6所示。图3.6 加解密最终生成的界面4 总结在本系统的开发过程中,由于涉及到多种不同的平台和语言,因此遇到了不少困难。不过在老师的帮助下这些问题都被一一解决了,android是一个全新的平台,虽然现在他遇到了很有的困境比如说google的不确定举动,它不是天使,而是永远以盈利为目的的it企业,在手机终端用户上的不足,但是我们应该注意到,他那巨大的发展前景,在新型国家特别是在亚洲的市场

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论