![具有數(shù)據(jù)加密的Android藍(lán)牙遠(yuǎn)程控制-技術(shù)方案_第1頁](http://file4.renrendoc.com/view/fc88c20d84fc70416b95f0dd94652926/fc88c20d84fc70416b95f0dd946529261.gif)
![具有數(shù)據(jù)加密的Android藍(lán)牙遠(yuǎn)程控制-技術(shù)方案_第2頁](http://file4.renrendoc.com/view/fc88c20d84fc70416b95f0dd94652926/fc88c20d84fc70416b95f0dd946529262.gif)
![具有數(shù)據(jù)加密的Android藍(lán)牙遠(yuǎn)程控制-技術(shù)方案_第3頁](http://file4.renrendoc.com/view/fc88c20d84fc70416b95f0dd94652926/fc88c20d84fc70416b95f0dd946529263.gif)
![具有數(shù)據(jù)加密的Android藍(lán)牙遠(yuǎn)程控制-技術(shù)方案_第4頁](http://file4.renrendoc.com/view/fc88c20d84fc70416b95f0dd94652926/fc88c20d84fc70416b95f0dd946529264.gif)
![具有數(shù)據(jù)加密的Android藍(lán)牙遠(yuǎn)程控制-技術(shù)方案_第5頁](http://file4.renrendoc.com/view/fc88c20d84fc70416b95f0dd94652926/fc88c20d84fc70416b95f0dd946529265.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
精品文檔-下載后可編輯具有數(shù)據(jù)加密的Android藍(lán)牙遠(yuǎn)程控制-技術(shù)方案隨著科技的不斷的發(fā)展,以及人們對于高科技產(chǎn)品的依賴,智能可穿戴設(shè)備逐步的發(fā)展起來,走進(jìn)了人們的日常生活。智能手表、智能眼鏡的問世為智能可穿戴設(shè)備的發(fā)展帶來了新的方向,Android系統(tǒng)廣泛的應(yīng)用于智能可穿戴設(shè)備、智能手機中。為了使智能可穿戴設(shè)備更好的與手機相互配合,滿足于人們的需求,本文研究了藍(lán)牙遠(yuǎn)程控制功能,實現(xiàn)了具有遠(yuǎn)程控制功能的應(yīng)用程序。由于通過藍(lán)牙傳送的數(shù)據(jù)能夠被追蹤竊取到,發(fā)送數(shù)據(jù)的安全性也尤為重要,通過比較本文采用RC4和RSA混合加密方式對發(fā)送的數(shù)據(jù)進(jìn)行加密。為了適應(yīng)不同品牌的智能手表,首先實現(xiàn)了在手機之間的遠(yuǎn)程控制功能。程序應(yīng)用在手表上時,只需對顯示界面的長寬比例根據(jù)手表的分辨率進(jìn)行修改,即可滿足功能性的需求。
1藍(lán)牙模塊設(shè)計
1.1Android設(shè)備間建立藍(lán)牙連接
實現(xiàn)通過藍(lán)牙的遠(yuǎn)程控制,基本的操作是要先建立設(shè)備之間的藍(lán)牙連接,AndroidSDK提供了功能完善的API,通過調(diào)用系統(tǒng)的API能夠?qū)崿F(xiàn)對附近藍(lán)牙設(shè)備搜索、返回遠(yuǎn)程設(shè)備的硬件地址、建立連接、斷開連接等工作。藍(lán)牙連接的建立主要分為以下兩個步驟:
(1)搜索附近藍(lán)牙設(shè)備
BluetoothAdapter類中提供了本地藍(lán)牙適配器的接口,所有的藍(lán)牙交互都是從此API開始的,主要功能有開關(guān)藍(lán)牙設(shè)備、掃描藍(lán)牙設(shè)備、設(shè)置或獲取藍(lán)牙狀態(tài)值、獲取藍(lán)牙名稱、獲取藍(lán)牙Mac地址等。調(diào)用enable()方法打開本地的藍(lán)牙,然后調(diào)用startDiscovery()搜索附近設(shè)備,將所有搜索到的藍(lán)牙地址存儲在列表中。通過獲得的遠(yuǎn)程藍(lán)牙設(shè)備的地址,實例化一個藍(lán)牙設(shè)備的語句如下:
BluetoothDevicedevice=BluetoothAdapter.getRemoteDevice(address)
(2)建立藍(lán)牙連接
建立藍(lán)牙連接的過程中的兩個設(shè)備,分別充當(dāng)了Server和Client。對于Server端通過UUID來創(chuàng)建一個BluetoothServerSocket來收聽來自其他設(shè)備的連接請求,當(dāng)有遠(yuǎn)端設(shè)備發(fā)來建立連接的請求,對請求進(jìn)行響應(yīng)實現(xiàn)藍(lán)牙的連接。在程序中使用如下語句:
BluetoothServerSocketmmServerSocket=mAdapter.listenUsingRfcommWithServiceRecord(NAME_SECURE,Y_UUID_SECURE);
對于Client端,使用第1步中實例化的藍(lán)牙設(shè)備BluetoothDevice,通過UUID創(chuàng)建一個BluetoothSocket,發(fā)送連接請求,與Server端建立連接,來實現(xiàn)數(shù)據(jù)的接收和發(fā)送,在程序中使用如下語句:
BluetoothSocketmmSocket=device.createRfcommSocketToServiceRecord(MY_UUID_SECURE);
Server端BluetoothServerSocket代表一個打開服務(wù)器套接字偵聽傳入的請求,類似于一個TCPSeverSocket,當(dāng)連接建立成功后,調(diào)用BluetoothServerSocket接口的accept()方法,返回一個BluetoothSocket對象。BluetoothSocket用來代表一個藍(lán)牙套接字,這個套接字類似于TCP套接字。這是應(yīng)用程序的連接點,通過此接口可以實現(xiàn)藍(lán)牙數(shù)據(jù)的接收和發(fā)送。調(diào)用BluetoothSocket接口中的方法,得到輸入輸出流,在應(yīng)用程序中向輸出流中寫數(shù)據(jù)實現(xiàn)藍(lán)牙數(shù)據(jù)的發(fā)送,從輸入流讀數(shù)據(jù),實現(xiàn)藍(lán)牙數(shù)據(jù)的接收。
1.2自定義藍(lán)牙遠(yuǎn)程控制協(xié)議
Android系統(tǒng)上藍(lán)牙的連接過程通過以上的兩步即可建立完成,在應(yīng)用中對于藍(lán)牙使用僅僅限于數(shù)據(jù)的傳送,對于數(shù)據(jù)的內(nèi)容并不關(guān)心。然而這并不能滿足用戶的需求,用戶更期望通過藍(lán)牙實現(xiàn)遠(yuǎn)程控制的功能。當(dāng)前藍(lán)牙發(fā)送的數(shù)據(jù)并沒有對內(nèi)容進(jìn)行考慮,僅僅是簡單的數(shù)據(jù)傳送,如果想實現(xiàn)藍(lán)牙的遠(yuǎn)程控制,那么就需要自定義發(fā)送的數(shù)據(jù)結(jié)構(gòu)??刂菩畔⒑推胀〝?shù)據(jù)信息均通過藍(lán)牙在設(shè)備之間進(jìn)行傳送,若想對控制信息和數(shù)據(jù)信息進(jìn)行區(qū)分,就要在已有的發(fā)送數(shù)據(jù)的首部,添加頭結(jié)點,設(shè)置頭結(jié)點占用1字節(jié)的存儲空間,作為控制位標(biāo)識,用來標(biāo)識傳遞信息的類型。1字節(jié)的頭結(jié)點多可以標(biāo)識出256種不同的信息類型,在現(xiàn)階段的使用過程中能夠滿足需求,當(dāng)然如果控制類型增加,只需增加控制位的位數(shù)。定義的數(shù)據(jù)結(jié)構(gòu)如下所示:
本應(yīng)用程序?qū)崿F(xiàn)了手機通過藍(lán)牙遠(yuǎn)程控制另一部手機進(jìn)行圖片預(yù)覽以及拍照功能。因此發(fā)送信息分為兩類,一類發(fā)送的是圖像的數(shù)據(jù)信息,在Android程序中定義控制位為:
privatestaticfinalbyteDATA=(byte)0;
另一類是拍照指令,在Android程序中定義控制位為:
privatestaticfinalbyteTAKE_PHOTO=(byte)1;
如果欲實現(xiàn)更多的控制功能,可以自定義更多的控制位類別,在程序進(jìn)行相應(yīng)的響應(yīng),即可實現(xiàn)更多的控制功能。
當(dāng)Sever端收到數(shù)據(jù)以后,對于數(shù)據(jù)的頭結(jié)點進(jìn)行判斷。通過判斷控制位的類型來區(qū)分出是數(shù)據(jù)信息還是控制信息,返回給主函數(shù)對其響應(yīng)。如果接收到的數(shù)據(jù)包為數(shù)據(jù)信息,則調(diào)用圖像顯示功能,將接收的圖片顯示出來。如果收到的數(shù)據(jù)的是拍照指令,即可調(diào)用拍照功能模塊,將拍攝的照片進(jìn)行存儲。
2加密模塊設(shè)計
雖然自定義的藍(lán)牙數(shù)據(jù)結(jié)構(gòu)滿足了人們通過藍(lán)牙遠(yuǎn)程控制的需求,然而卻也存在著一定的安全性問題。在實際生活中,環(huán)境比較復(fù)雜,無線傳輸?shù)男盘柲軌虮凰送ㄟ^一些工具監(jiān)測并且竊取到。如果當(dāng)用戶傳送的圖片信息被他人截取,用戶的隱私就會被輕松的獲取到。然而這并不算危險的,如果在程序中添加了很多控制信息,控制信息被他人截取并且掌握后,那么可能就會導(dǎo)致手機被他人控制,這將給用戶帶來更大的損失。
為了保證信息的安全性,需要對藍(lán)牙發(fā)送的數(shù)據(jù)進(jìn)行加密操作。數(shù)據(jù)的加密一般要經(jīng)過復(fù)雜加密算法來實現(xiàn),然而對于手機而言,運算效率不是很高,而且若要實時的預(yù)覽遠(yuǎn)程設(shè)備采集到的數(shù)據(jù),也就意味著要在極短的時間內(nèi),加密和解密大量的數(shù)據(jù),那么加密算法的加密效率更加關(guān)鍵。
文獻(xiàn)4通過使用一種基于AES和RSA的混合加密算法來保證藍(lán)牙通信過程中的數(shù)據(jù)安全。AES算法以其在塊加密高效的特點應(yīng)用與藍(lán)牙通信的數(shù)據(jù)信息加密上,RSA算法在秘鑰管理上比較有優(yōu)勢,能夠有很高的安全性,因此用來加密AES的秘鑰信息。
文獻(xiàn)5比較了RC4和AES對于設(shè)備CPU時間占用、內(nèi)存消耗以及電池電量的消耗進(jìn)行了分析對比,得出了RC4更適合于大數(shù)據(jù)包的加密,而AES更適合于小數(shù)據(jù)包的加密。
經(jīng)過多方面的綜合比較,本文采用RC4和RSA混合加密的方式對數(shù)據(jù)進(jìn)行加密。利用RC4在大數(shù)據(jù)包加密速度快的優(yōu)勢,首先對數(shù)據(jù)使用RC4進(jìn)行加密。由于RC4加密算法相對簡單,其安全性上也存在著一定的風(fēng)險,為了把這種風(fēng)險降低,采用混合加密的處理方式對數(shù)據(jù)進(jìn)行操作。RC4加密算法加密完數(shù)據(jù)信息后,進(jìn)行第二次加密,加密RC4的秘鑰信息。由于RC4秘鑰的長度比較短,可以采用運算過程相對復(fù)雜但是安全性非常高的RSA加密算法。整個的加密過程如圖1所示。
加密的過程主要分為兩步:
步,對于原始數(shù)據(jù)OriginalMessage用RC4秘鑰來進(jìn)行加密。
第二步,對于RC4秘鑰使用RSA進(jìn)行加密,保證了此秘鑰在數(shù)據(jù)傳輸安全性。防止了信息被截取后,容易分析出RC4秘鑰內(nèi)容的風(fēng)險。
解密過程如圖2所示。
解密過程同樣分為兩個步驟,當(dāng)應(yīng)用程序收到發(fā)送來的數(shù)據(jù)后,步讀取RC4秘鑰部分,通過RSA的私有秘鑰進(jìn)行解密,還原RC4秘鑰。第二步,使用RC4秘鑰對數(shù)據(jù)部分進(jìn)行解密,還原出圖像信息。
掌握了RC4加密算法和RSA加密算法后,即可實現(xiàn)混合加密算法。對發(fā)送的數(shù)據(jù)進(jìn)行混合加密,保證用戶數(shù)據(jù)的安全性。
終寫入藍(lán)牙輸出流中的數(shù)據(jù)主要包含3部分,如下所示:
部分,數(shù)據(jù)的長度,在Android程序中,為了將連續(xù)發(fā)送的圖片的信息,每一幀識別出來,還需要在頭部添加一個數(shù)據(jù)信息長度。以便在數(shù)據(jù)被接收到后,能夠確定所要讀取的字節(jié)數(shù)。
第二部分是RC4秘鑰,這部分中RC4的秘鑰是被RSA所加密后的結(jié)果,能夠保證RC4的秘鑰再被竊取到后也不能夠直接使用,在當(dāng)今計算機的運算效率下,還不能夠?qū)崿F(xiàn)對RSA加密算法的破解。
第三部分是經(jīng)RC4加密的數(shù)據(jù)信息。來自上層的應(yīng)用程序欲發(fā)送的未加密的數(shù)據(jù)到了此模塊,要進(jìn)行RC4加密。信息中保存著所有的用戶操作的信息。這部分的數(shù)據(jù)長度是根據(jù)情況來分配。如果是控制信息,那么信息長度會非常短。如果是圖片數(shù)據(jù),那么信息長度會比較長。這個長度信息由部分的數(shù)據(jù)長度進(jìn)行記錄。
3.藍(lán)牙遠(yuǎn)程控制拍照程序設(shè)計
本程序是在基于Android操作系統(tǒng)的智能手機上構(gòu)建的一個遠(yuǎn)程控制程序。程序中包括著藍(lán)牙連接的建立、藍(lán)牙數(shù)據(jù)的編碼與傳送、數(shù)據(jù)加密3部分。實現(xiàn)了通過手機實時顯示另一部手機端攝像頭采集到的數(shù)據(jù),通過點擊程序中的拍照鍵即可控制手機進(jìn)行照片的拍攝。程序的流程圖如圖3所示。
3.1建立藍(lán)牙連接
創(chuàng)建DeviceListActivity類用于藍(lán)牙設(shè)備的搜索,返回選擇的藍(lán)牙設(shè)備的名稱和地址。
其功能流程如圖4所示。
通過搜索設(shè)備功能可獲得周圍可見的藍(lán)牙設(shè)備信息,以列表的形式顯示所有搜索到的設(shè)備。用戶根據(jù)需要,選擇所要連接的設(shè)備,DeviceListActivity類返回設(shè)備的名稱以及MAC地址。
3.2藍(lán)牙數(shù)據(jù)的編碼
根據(jù)DeviceListActivity返回的遠(yuǎn)端藍(lán)牙設(shè)備的名稱和地址,調(diào)用BluetoothAPI建立藍(lán)牙設(shè)備的連接,當(dāng)連接建立完成后,便進(jìn)入到了主功能模塊。
首先在onCreat()函數(shù)中,完成了參數(shù)的初始化工作,初始化發(fā)送標(biāo)志位SendFlag=0,在此狀態(tài)下,應(yīng)用程序處于接收數(shù)據(jù)的狀態(tài)。攝像頭停止采集圖像信息,不進(jìn)行發(fā)送數(shù)據(jù)。接著再初始化Button監(jiān)聽事件,應(yīng)用程序中定義了兩個Button,一個Button用來控制此Activity處于發(fā)送還是接收的狀態(tài);另一個Button用來控制是否對拍照功能予以響應(yīng);
Activity處于發(fā)送狀態(tài)時,將Camera采集到的每一幀數(shù)據(jù)進(jìn)行處理,由于圖片比較大,藍(lán)牙發(fā)送的數(shù)據(jù)速率是有限的,為了保證接收端接收到的視頻圖像的連貫性,要對采集到的圖片進(jìn)行壓縮處理。調(diào)用AndroidAPI中Matrix的postScale()方法,設(shè)置縮放比例,實現(xiàn)圖片的縮放。
接下來數(shù)據(jù)部分要添加信息頭,如果是拍照的控制信息,添加第1節(jié)中設(shè)定的TAKE_PHOTO其值為數(shù)值1;如果是照片信息,添加DATA其值為數(shù)值0。通過添加信息頭,便實現(xiàn)了對于數(shù)據(jù)信息和控制信息的區(qū)分。進(jìn)入到下一步驟,對數(shù)據(jù)進(jìn)行加密。
3.3數(shù)據(jù)加密
數(shù)據(jù)加密采用RC4與RSA混合加密方式,再上一節(jié)中詳細(xì)的予以闡述。數(shù)據(jù)加密的流程如圖5所示。
在接收端,線程一直等待藍(lán)牙發(fā)送的數(shù)據(jù),當(dāng)讀取到數(shù)據(jù),便根據(jù)解密的方法,依次去除加密信息。解密的順序與加密構(gòu)成逆過程。解密流程如圖6所示。
對于解密出來的數(shù)據(jù),要對其分析判斷數(shù)據(jù)的類型,根據(jù)自定義的藍(lán)牙數(shù)據(jù)結(jié)構(gòu)可知,數(shù)據(jù)的位即為數(shù)據(jù)類型位。進(jìn)行數(shù)據(jù)類型判斷的主要程序如下所示:
switch(decr[0]){
caseTAKE_PHOTO:
mHandler.obtainMessage(MainActivity.MESSAGE_READ,-1,TAKE_PHOTO,buffer).sendToTarget();
break;
caseDATA:
mHandler.obtainMessage(MainActivity.MESSAGE_READ,decr.length,DATA,decr).sendToTarget();
break;
}
通過以上3個步驟,便實現(xiàn)了遠(yuǎn)程控制的功能。在實際應(yīng)用中,其中一部手機作為被控制端,實時的將照相機采集到的數(shù)據(jù)發(fā)送到另一部手機??刂贫藢崟r顯示接收到的圖像,當(dāng)需要拍攝照片時候,點擊拍照按鈕,即可實現(xiàn)遠(yuǎn)程控制的功能,完成照片的拍攝,并將照片
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 北京課改版歷史七年級上冊第6課《春秋五霸》聽課評課記錄
- 湘教版數(shù)學(xué)九年級上冊5.1《總體平均數(shù)與方差的估計》聽評課記錄2
- 蘇科版九年級數(shù)學(xué)聽評課記錄:第82講期中期末串講
- 統(tǒng)編版七年級下冊道德與法治第四課 揭開情緒的面紗 聽課評課記錄(2課時)
- 華東師大版八年級上冊數(shù)學(xué)聽評課記錄《命題》
- 部編人教版道德與法治九年級下冊全冊集體備課聽課評課記錄
- 人教新課標(biāo)地理七年級上冊《1.1地球和地球儀》聽課評課記錄
- 湘教版數(shù)學(xué)八年級下冊《2.7 正方形》聽評課記錄
- 2025年自動造型線合作協(xié)議書
- 華師大版歷史九年級上冊第3課《古代印度》聽課評課記錄
- 建筑與市政工程第三方質(zhì)量安全巡查方案
- 成品移動公廁施工方案
- 二零二五版財務(wù)顧問保密與工作內(nèi)容協(xié)議3篇
- 2025-2030年中國干混砂漿行業(yè)運行狀況及發(fā)展趨勢預(yù)測報告
- 2025年度部隊食堂食材采購與質(zhì)量追溯服務(wù)合同3篇
- 2025江蘇鹽城市交通投資建設(shè)控股集團(tuán)限公司招聘19人高頻重點提升(共500題)附帶答案詳解
- 新人教版一年級下冊數(shù)學(xué)教案集體備課
- 2024托管班二人合伙的協(xié)議書
- 《輸電線路金具識別》課件
- 基于PLC的豬場智能液態(tài)飼喂系統(tǒng)的設(shè)計與研究
- 2023-2024學(xué)年浙江省金華市武義縣七年級(上)期末英語試卷
評論
0/150
提交評論