chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

采用RC4和RSA混合加密方式實現藍牙遠程控制功能

電子設計 ? 來源:單片機與嵌入式系統(tǒng)應用 ? 作者:陳鈺琨;馬忠梅; ? 2021-06-29 15:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作者:陳鈺琨;馬忠梅;曾禮

隨著科技的不斷的發(fā)展,以及人們對于高科技產品的依賴,智能可穿戴設備逐步的發(fā)展起來,走進了人們的日常生活。智能手表、智能眼鏡的問世為智能可穿戴設備的發(fā)展帶來了新的方向,Android系統(tǒng)廣泛的應用于智能可穿戴設備、智能手機中。為了使智能可穿戴設備更好的與手機相互配合,滿足于人們的需求,本文研究了藍牙遠程控制功能,實現了具有遠程控制功能的應用程序。由于通過藍牙傳送的數據能夠被追蹤竊取到,發(fā)送數據的安全性也尤為重要,通過比較本文采用RC4和RSA混合加密方式對發(fā)送的數據進行加密。為了適應不同品牌的智能手表,首先實現了在手機之間的遠程控制功能。程序應用在手表上時,只需對顯示界面的長寬比例根據手表的分辨率進行修改,即可滿足功能性的需求。

1 藍牙模塊設計

1.1 Android設備間建立藍牙連接

實現通過藍牙的遠程控制,最基本的操作是要先建立設備之間的藍牙連接,Android SDK提供了功能完善的API,通過調用系統(tǒng)的API能夠實現對附近藍牙設備搜索、返回遠程設備的硬件地址、建立連接、斷開連接等工作。藍牙連接的建立主要分為以下兩個步驟:

(1)搜索附近藍牙設備

BluetoothAdapter 類中提供了本地藍牙適配器的接口,所有的藍牙交互都是從此API開始的,主要功能有開關藍牙設備、掃描藍牙設備、設置或獲取藍牙狀態(tài)值、獲取藍牙名稱、獲取藍牙Mac地址等。調用enable() 方法打開本地的藍牙,然后調用startDiscovery()搜索附近設備,將所有搜索到的藍牙地址存儲在列表中。通過獲得的遠程藍牙設備的地址,實例化一個藍牙設備的語句如下:

BluetoothDevice device =BluetoothAdapter .getRemoteDevice(address)

(2)建立藍牙連接

建立藍牙連接的過程中的兩個設備,分別充當了Server和Client。對于Server端通過UUID來創(chuàng)建一個BluetoothServerSocket來收聽來自其他設備的連接請求,當有遠端設備發(fā)來建立連接的請求,對請求進行響應實現藍牙的連接。在程序中使用如下語句:

BluetoothServerSocket mmServerSocket = mAdapter.listenUsingRfcommWithServiceRecord(NAME_SECURE, Y_UUID_SECURE);

對于Client端, 使用第1步中實例化的藍牙設備BluetoothDevice,通過 UUID創(chuàng)建一個BluetoothSocket, 發(fā)送連接請求,與Server端建立連接, 來實現數據的接收和發(fā)送,在程序中使用如下語句:

BluetoothSocket mmSocket = device.createRfcommSocketToServiceRecord(MY_UUID_SECURE);

Server端BluetoothServerSocket代表一個打開服務器套接字偵聽傳入的請求,類似于一個TCP SeverSocket,當連接建立成功后,調用BluetoothServerSocket接口的 accept()方法,返回一個BluetoothSocket對象。BluetoothSocket用來代表一個藍牙套接字,這個套接字類似于 TCP套接字。這是應用程序的連接點,通過此接口可以實現藍牙數據的接收和發(fā)送。調用BluetoothSocket接口中的方法,得到輸入輸出流,在應用程序中向輸出流中寫數據實現藍牙數據的發(fā)送,從輸入流讀數據,實現藍牙數據的接收。

1.2 自定義藍牙遠程控制協議

Android系統(tǒng)上藍牙的連接過程通過以上的兩步即可建立完成,在應用中對于藍牙使用僅僅限于數據的傳送,對于數據的內容并不關心。然而這并不能滿足用戶的需求,用戶更期望通過藍牙實現遠程控制的功能。當前藍牙發(fā)送的數據并沒有對內容進行考慮,僅僅是簡單的數據傳送,如果想實現藍牙的遠程控制,那么就需要自定義發(fā)送的數據結構??刂菩畔⒑推胀〝祿畔⒕ㄟ^藍牙在設備之間進行傳送,若想對控制信息和數據信息進行區(qū)分,就要在已有的發(fā)送數據的首部,添加頭結點,設置頭結點占用1字節(jié)的存儲空間,作為控制位標識,用來標識傳遞信息的類型。1 字節(jié)的頭結點最多可以標識出256種不同的信息類型,在現階段的使用過程中能夠滿足需求,當然如果控制類型增加,只需增加控制位的位數。定義的數據結構如下所示:

poYBAGDa00aAII_AAAAOZdjvU0A660.png

本應用程序實現了手機通過藍牙遠程控制另一部手機進行圖片預覽以及拍照功能。因此發(fā)送信息分為兩類,一類發(fā)送的是圖像的數據信息,在Android程序中定義控制位為:

private static final byte DATA =(byte) 0;

另一類是拍照指令,在Android程序中定義控制位為:

private static final byte TAKE_PHOTO = (byte)1;

如果欲實現更多的控制功能,可以自定義更多的控制位類別,在程序進行相應的響應,即可實現更多的控制功能。

當Sever端收到數據以后,對于數據的頭結點進行判斷。通過判斷控制位的類型來區(qū)分出是數據信息還是控制信息,返回給主函數對其響應。如果接收到的數據包為數據信息,則調用圖像顯示功能,將接收的圖片顯示出來。如果收到的數據的是拍照指令,即可調用拍照功能模塊,將拍攝的照片進行存儲。

2 加密模塊設計

雖然自定義的藍牙數據結構滿足了人們通過藍牙遠程控制的需求,然而卻也存在著一定的安全性問題。在實際生活中,環(huán)境比較復雜,無線傳輸的信號能夠被他人通過一些工具監(jiān)測并且竊取到。如果當用戶傳送的圖片信息被他人截取,用戶的隱私就會被輕松的獲取到。然而這并不算最危險的,如果在程序中添加了很多控制信息,控制信息被他人截取并且掌握后,那么可能就會導致手機被他人控制,這將給用戶帶來更大的損失。

為了保證信息的安全性,需要對藍牙發(fā)送的數據進行加密操作。數據的加密一般要經過復雜加密算法來實現,然而對于手機而言,運算效率不是很高,而且若要實時的預覽遠程設備采集到的數據,也就意味著要在極短的時間內,加密和解密大量的數據,那么加密算法的加密效率更加關鍵。

文獻4通過使用一種基于AES和RSA的混合加密算法來保證藍牙通信過程中的數據安全。AES算法以其在塊加密高效的特點應用與藍牙通信的數據信息加密上,RSA算法在秘鑰管理上比較有優(yōu)勢,能夠有很高的安全性,因此用來加密AES的秘鑰信息。

文獻5比較了RC4 和AES對于設備CPU時間占用、內存消耗以及電池電量的消耗進行了分析對比,得出了RC4更適合于大數據包的加密,而AES更適合于小數據包的加密。

經過多方面的綜合比較,本文采用RC4和RSA混合加密的方式對數據進行加密。利用RC4在大數據包加密速度快的優(yōu)勢,首先對數據使用RC4進行加密。由于RC4加密算法相對簡單,其安全性上也存在著一定的風險,為了把這種風險降低,采用混合加密的處理方式對數據進行操作。RC4加密算法加密完數據信息后,進行第二次加密,加密RC4的秘鑰信息。由于RC4秘鑰的長度比較短,可以采用運算過程相對復雜但是安全性非常高的RSA加密算法。整個的加密過程如圖1所示。

pYYBAGDa0z-AAVh_AAA4iCdbfgE747.png

圖 1數據加密過程

加密的過程主要分為兩步:

第一步,對于原始數據 Original Message用RC4秘鑰來進行加密。

第二步,對于RC4秘鑰使用RSA進行加密,保證了此秘鑰在數據傳輸安全性。防止了信息被截取后,容易分析出RC4秘鑰內容的風險。

解密過程如圖2所示。

pYYBAGDa0zaARA-0AAA31eiEE-I190.png

圖2數據解密過程

解密過程同樣分為兩個步驟,當應用程序收到發(fā)送來的數據后,第一步讀取RC4秘鑰部分,通過RSA的私有秘鑰進行解密,還原RC4秘鑰。第二步,使用RC4秘鑰對數據部分進行解密,還原出圖像信息。

掌握了RC4加密算法和RSA加密算法后,即可實現混合加密算法。對發(fā)送的數據進行混合加密,保證用戶數據的安全性。

最終寫入藍牙輸出流中的數據主要包含3部分,如下所示:

pYYBAGDa0y6AJGJXAAAXrCxlxwc034.png

第一部分,數據的長度,在Android程序中,為了將連續(xù)發(fā)送的圖片的信息,每一幀識別出來,還需要在頭部添加一個數據信息長度。以便在數據被接收到后,能夠確定所要讀取的字節(jié)數。

第二部分是RC4秘鑰,這部分中RC4的秘鑰是被RSA所加密后的結果,能夠保證RC4的秘鑰再被竊取到后也不能夠直接使用,在當今計算機的運算效率下,還不能夠實現對RSA加密算法的破解。

第三部分是經RC4加密的數據信息。來自上層的應用程序欲發(fā)送的未加密的數據到了此模塊,要進行RC4加密。信息中保存著所有的用戶操作的信息。這部分的數據長度是根據情況來分配。如果是控制信息,那么信息長度會非常短。如果是圖片數據,那么信息長度會比較長。這個長度信息由第一部分的數據長度進行記錄。

3.藍牙遠程控制拍照程序設計

本程序是在基于Android操作系統(tǒng)的智能手機上構建的一個遠程控制程序。程序中包括著藍牙連接的建立、藍牙數據的編碼與傳送、數據加密3部分。實現了通過手機實時顯示另一部手機端攝像頭采集到的數據,通過點擊程序中的拍照鍵即可控制手機進行照片的拍攝。程序的流程圖如圖3所示。

pYYBAGDa0yeASW2yAACr6rQUZw8161.png

圖3藍牙遠程控制程序流程圖

3.1 建立藍牙連接

創(chuàng)建DeviceListActivity類用于藍牙設備的搜索,返回選擇的藍牙設備的名稱和地址。

其功能流程如圖4所示。

poYBAGDa0yCABCr3AAAtH8SmNoQ302.png

圖4藍牙連接建立流程圖

通過搜索設備功能可獲得周圍可見的藍牙設備信息,以列表的形式顯示所有搜索到的設備。用戶根據需要,選擇所要連接的設備,DeviceListActivity類返回設備的名稱以及MAC地址。

3.2 藍牙數據的編碼

根據 DeviceListActivity返回的遠端藍牙設備的名稱和地址,調用Bluetooth API建立藍牙設備的連接,當連接建立完成后,便進入到了主功能模塊。

首先在onCreat()函數中,完成了參數的初始化工作,初始化發(fā)送標志位SendFlag = 0,在此狀態(tài)下,應用程序處于接收數據的狀態(tài)。攝像頭停止采集圖像信息,不進行發(fā)送數據。接著再初始化Button監(jiān)聽事件,應用程序中定義了兩個Button,一個Button用來控制此Activity處于發(fā)送還是接收的狀態(tài);另一個Button用來控制是否對拍照功能予以響應;

Activity處于發(fā)送狀態(tài)時,將Camera采集到的每一幀數據進行處理,由于圖片比較大,藍牙發(fā)送的數據速率是有限的,為了保證接收端接收到的視頻圖像的連貫性,要對采集到的圖片進行壓縮處理。調用Android API中 Matrix的postScale()方法,設置縮放比例,實現圖片的縮放。

接下來數據部分要添加信息頭,如果是拍照的控制信息,添加第1節(jié)中設定的TAKE_PHOTO 其值為數值 1;如果是照片信息,添加 DATA其值為數值 0。通過添加信息頭,便實現了對于數據信息和控制信息的區(qū)分。最后進入到下一步驟,對數據進行加密。

3.3 數據加密

數據加密采用RC4與RSA混合加密方式,再上一節(jié)中詳細的予以闡述。數據加密的流程如圖5所示。

pYYBAGDa0xqAH2tPAAAg81__cBU326.png

圖5 數據加密流程圖

在接收端,線程一直等待藍牙發(fā)送的數據,當讀取到數據,便根據解密的方法,依次去除加密信息。解密的順序與加密構成逆過程。解密流程如圖6所示。

poYBAGDa0xSAWZdhAAAfmu6ldlA956.png

圖6 數據解密流程圖

對于解密出來的數據,要對其分析判斷數據的類型,根據自定義的藍牙數據結構可知,數據的第一位即為數據類型位。進行數據類型判斷的主要程序如下所示:

switch(decr[0]) {

case TAKE_PHOTO:

mHandler.obtainMessage(MainActivity.MESSAGE_READ, -1,TAKE_PHOTO , buffer).sendToTarget();

break;

case DATA:

mHandler.obtainMessage(MainActivity.MESSAGE_READ, decr.length,DATA, decr).sendToTarget();

break;

}

通過以上3個步驟,便實現了遠程控制的功能。在實際應用中,其中一部手機作為被控制端,實時的將照相機采集到的數據發(fā)送到另一部手機。控制端實時顯示接收到的圖像,當需要拍攝照片時候,點擊拍照按鈕,即可實現遠程控制的功能,完成照片的拍攝,并將照片存儲起來。

結語

本文實現了基于Android系統(tǒng)的藍牙遠程控制功能。極大的豐富用戶對于智能設備功能的需求。在數據傳送的過程中,使用了混合加密算法對數據加密,保證了用戶數據的安全以及保證了設備不被他人控制。在方便人們生活的同時也保護了用戶的隱私。隨著智能可穿戴設備的發(fā)展,智能設備通過藍牙相互連接和相互控制的應用也會比較廣泛,智能可穿戴設備的主要以搭載Android系統(tǒng)為主。本文中實現的遠程控制拍攝照片的功能,移植到手表端,核心的程序部分均不需要改動,在程序顯示界面部分根據不同種類設備的分辨率進行相應的調整,便能實現通過藍牙進行遠程控制的功能。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 手機
    +關注

    關注

    35

    文章

    6965

    瀏覽量

    160351
  • Android
    +關注

    關注

    12

    文章

    3980

    瀏覽量

    132348
  • 藍牙
    +關注

    關注

    116

    文章

    6166

    瀏覽量

    176477
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    RC4加密算法的FPGA設計與實現

    RC4加密算法的FPGA設計與實現.pdf
    發(fā)表于 03-21 17:26

    RC4加密算法的FPGA設計與實現

    RC4加密算法的FPGA設計與實現 RC4算法是一種密匙長度可變的加密算法.因其實現方便,安全性
    發(fā)表于 08-11 11:48

    基于電話遠程控制家電設備系統(tǒng)的設計

    遠程控制家電設備和留言功能。其具有較高的實用價值,適用于家庭、企事業(yè)單位、辦公室等場所。關鍵字:遠程控制,STC89C52RC,雙音多頻,ISD4004,家電設備,留言
    發(fā)表于 12-03 21:15

    不能使用RC4來輸出

    資源中,然后MCC自動分配TX到引腳RC4,但是只有TX。我想使用不同的引腳到TX和RX,所以我取消選擇RC4在PIN管理器中,選擇RA4和RA5作為TX和RX。之后,我得到警告“函數”CK“沒有輸出
    發(fā)表于 10-22 10:04

    如何去實現一種基于Android系統(tǒng)的藍牙遠程控制功能

    如何去實現一種基于Android系統(tǒng)的藍牙遠程控制功能?
    發(fā)表于 05-21 07:28

    RC4密碼的改進方法及其性能分析

    針對RC4密碼技術在工程應用中存在的弱密鑰和相關密鑰攻擊、不變性弱點、數據流偏向性弱點等安全問題,提出一種將ECC技術與RC4技術相結合的方法。對改進后的RC4的數據處理效率
    發(fā)表于 04-16 10:01 ?15次下載

    基于藍牙遠程控制方法的實現

    藍牙通信具有無線性、開放性和低功耗的優(yōu)點,非常適合于野外場地的遠程控制。本文討論了在裝有Windows Mobile 5.0 操作系統(tǒng)的主設備上,用Socket 方式和從設備通信,并在此基礎上設
    發(fā)表于 01-13 14:56 ?31次下載

    藍牙微微網的遠程控制

    詳細介紹了在互聯網上遠程控制藍牙微微網內藍牙設備的實現方法,涉及藍牙技術、SOCKET編程、XML技術等
    發(fā)表于 07-23 10:26 ?19次下載

    RC4加密算法的FPGA設計與實現

    RC4加密算法的FPGA設計與實現,下來看看。
    發(fā)表于 05-10 11:24 ?27次下載

    對不同種子密鑰長度的RC4算法的明文恢復攻擊

    針對不同種子密鑰長度的RC4算法的明文恢復問題,提出了對經過不同種子密鑰長度(8字節(jié)、16字節(jié)、22字節(jié))的RC4算法加密的明文的明文恢復攻擊。首先利用統(tǒng)計算法在232個不同種子密鑰的條件下統(tǒng)計了
    發(fā)表于 03-29 11:18 ?0次下載

    RSA加密是什么,門禁中的哪些環(huán)節(jié)會使用到RSA加密

    的難度就決定了這個算法的可靠性,目前世界上還沒有任何可靠攻擊RSA算法的方式,只要密鑰足夠長,用RSA加密的信息實際上是不能被破解的。 非對稱加密
    的頭像 發(fā)表于 12-30 15:26 ?4542次閱讀

    如何實現遠程控制路燈開關

    可以使用路燈遠程控制開關,路燈專用,采用4G網絡信號,可實現全國范圍內的遠距離開、關控制,不受天氣、山川、河流等因素的影響,通過
    發(fā)表于 12-15 16:46 ?2760次閱讀

    基于JAVA的RSA文件加密軟件的設計與實現(源代碼及論文)

    分析RSA算法的應用現狀,論證文件加密應用RSA算法的可行性和意義。設計一套完整實用的RSA文件加密解決方案,具體編碼
    發(fā)表于 06-09 16:01 ?0次下載

    PLC遠程控制模塊的通訊方式有哪些?工業(yè)網關ZP4000的功能與特點

    在工業(yè)場景中,我們PLC通常采用有線的方式進行數據通訊,這種通訊方式距離受到局限,隨著科技進步發(fā)展,人們更依賴于遠程控制,以無線通訊的方式
    的頭像 發(fā)表于 07-13 17:08 ?1417次閱讀
    PLC<b class='flag-5'>遠程控制</b>模塊的通訊<b class='flag-5'>方式</b>有哪些?工業(yè)網關ZP4000的<b class='flag-5'>功能</b>與特點

    智慧路燈如何實現遠程控制?

    引言 在智慧城市建設的進程中,叁仟智慧路燈作為重要的基礎設施,其遠程控制功能發(fā)揮著關鍵作用。遠程控制使得叁仟智慧路燈能夠擺脫地域限制,實現高效、精準的管理,極大地提升了城市照明系統(tǒng)的運
    的頭像 發(fā)表于 03-18 12:27 ?529次閱讀
    智慧路燈如何<b class='flag-5'>實現</b><b class='flag-5'>遠程控制</b>?