版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
7.5通信加密的簡單實(shí)現(xiàn)本章主要講述通信加密的簡單實(shí)現(xiàn)。通過學(xué)習(xí)本節(jié)將能夠了解通信加密的簡單實(shí)現(xiàn)。通過本節(jié)學(xué)習(xí)可以熟悉:數(shù)據(jù)加密的方法通信加密的簡單實(shí)現(xiàn)通信加密的簡單實(shí)現(xiàn)(1/6)
在目前項(xiàng)目程序中,并通過TCP通信已實(shí)現(xiàn)傳感器數(shù)據(jù)的更新與監(jiān)控,但傳輸?shù)臄?shù)據(jù)是非加密的明文,通過Wireshark網(wǎng)絡(luò)抓包工具容易捕捉網(wǎng)絡(luò)上的通信數(shù)據(jù),對物聯(lián)網(wǎng)設(shè)備的數(shù)據(jù)安全造成威脅。通信加密的簡單實(shí)現(xiàn)(2/6)
通過數(shù)據(jù)的異或即可實(shí)現(xiàn)簡單的加解密。首先二進(jìn)制數(shù)的異或運(yùn)算:0^0=0,1^1=0,0^1=1,1^0=1。通過以上運(yùn)算結(jié)果即可發(fā)現(xiàn)兩個(gè)二進(jìn)數(shù)進(jìn)行異或運(yùn)算,兩個(gè)相同的二進(jìn)制數(shù)異或則結(jié)果為0,
兩個(gè)不同的二進(jìn)數(shù)異或則結(jié)果為1。兩個(gè)字符進(jìn)行異或運(yùn)算,則是通過它們的ASCII碼值進(jìn)行運(yùn)算。如'A'^'B',則是65(0x41)^66(0x42),即二進(jìn)制數(shù):01000001^
01000010結(jié)果:00000011也就是'A'^'B'的結(jié)果是3,然后3^'B':
00000011
^
01000010結(jié)果:01000001
即'A'通信加密的簡單實(shí)現(xiàn)(3/6)
通過數(shù)據(jù)的異或即可實(shí)現(xiàn)簡單的加解密。首先二進(jìn)制數(shù)的異或運(yùn)算:0^0=0,1^1=0,0^1=1,1^0=1。通過以上運(yùn)算結(jié)果即可發(fā)現(xiàn)兩個(gè)二進(jìn)數(shù)進(jìn)行異或運(yùn)算,兩個(gè)相同的二進(jìn)制數(shù)異或則結(jié)果為0,
兩個(gè)不同的二進(jìn)數(shù)異或則結(jié)果為1。兩個(gè)字符進(jìn)行異或運(yùn)算,則是通過它們的ASCII碼值進(jìn)行運(yùn)算。如'A'^'B',則是65(0x41)^66(0x42),即二進(jìn)制數(shù):01000001^
01000010結(jié)果:00000011也就是'A'^'B'的結(jié)果是3,然后3^'B':
00000011
^
01000010結(jié)果:01000001
即'A'由此可見,'A'^'B'的運(yùn)算結(jié)果可作為加密數(shù)據(jù),然后加密數(shù)據(jù)^'B'即可以解密還原。所以在網(wǎng)絡(luò)通信中的數(shù)據(jù)只要異或一個(gè)固定的密鑰字符作為加密,然后再次異或密鑰字符即可實(shí)現(xiàn)解密。但只使用一個(gè)字符的密鑰會(huì)容易遭到破解,所以在項(xiàng)目的加解密方法中采用多個(gè)字符組成的密鑰,數(shù)據(jù)的每個(gè)字符逐一對應(yīng)密鑰字符進(jìn)行異或運(yùn)算進(jìn)行加解密。通信加密的簡單實(shí)現(xiàn)(4/6)
在當(dāng)前項(xiàng)目設(shè)備端程序中增加加解密功能,在IoTMain.c源文件中增加密鑰全局變量與加解密功能函數(shù):staticchar*mykey="mypasswd";//加解密密鑰//加解密功能函數(shù)voidenDecodeText(char*data,intdataLen,constchar*key){for(inti=0;i<dataLen;i++)data[i]=data[i]^key[i%strlen(key)];}在第47行插入網(wǎng)絡(luò)通信數(shù)據(jù)的解密功能代碼如下:
enDecodeText(data,len,mykey);//解密數(shù)據(jù)然后在第60行、第81行處(回傳數(shù)據(jù)前)分別插入加密功能代碼如下:
enDecodeText(data,dataLen,mykey);//加密數(shù)據(jù)通信加密的簡單實(shí)現(xiàn)(5/6)在App端的IoTTcpClient.ets源文件中增加加解密的功能函數(shù)代碼:exportfunctionenDecodeText(data:string,passwd:string):string{lets:string='';for(leti=0;i<data.length;i++){letcode=data.charCodeAt(i)^passwd.charCodeAt(i%passwd.length);s+=String.fromCharCode(code);}returns;}然后在IoTDeviceUI.ets源文件中的IoTDeviceUI組件代碼中增加記錄密鑰的屬性成員:
privatemyKey:string="mypasswd";//密鑰并在第25行處插入在接收網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)換成字符串后進(jìn)行解密的代碼如下:
s=enDecodeText(s,this.myKey);//解密數(shù)據(jù)最后在第47行、第99行處(sendData前一行)分別插入數(shù)據(jù)加密功能的代碼如下:
s=enDecodeText(s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 脾胃養(yǎng)生知識(shí)課件
- 2026年中國民用航空局局屬事業(yè)單位公開招聘88人備考題庫(第二批)及參考答案詳解一套
- 2026年南寧市青秀區(qū)文化廣電體育和旅游局招聘備考題庫帶答案詳解
- 2026年中國科學(xué)院高能物理研究所財(cái)務(wù)會(huì)計(jì)崗招聘備考題庫及參考答案詳解一套
- 2026年克拉瑪依市公安機(jī)關(guān)面向高校畢業(yè)生及退役軍人公開招聘警務(wù)輔助人員331人備考題庫完整答案詳解
- 2025年鷹潭市公安局第二批面向社會(huì)公開招聘警務(wù)輔助人員備考題庫及1套參考答案詳解
- 2026年四川宜眾勞務(wù)開發(fā)有限公司關(guān)于公開招聘2輔助執(zhí)法人員的備考題庫及完整答案詳解一套
- 2026年中國人民銀行清算總中心直屬企業(yè)銀清企業(yè)服務(wù)(北京)有限公司公開招聘備考題庫及1套參考答案詳解
- 青海銷售分公司招聘筆試題庫2026
- 檢驗(yàn)記錄使用規(guī)范制度
- 2025年全國中考真題匯編專題11:議論文閱讀【含答案】
- VFP表單控件的使用
- 化學(xué)月考卷子講解
- 婦幼保健員考試試題題庫及答案
- 外貿(mào)跟單基礎(chǔ)知識(shí)培訓(xùn)課件
- 雙氧水安全管理制度
- (高清版)DBJ∕T 13-278-2025 《福建省電動(dòng)汽車充電基礎(chǔ)設(shè)施建設(shè)技術(shù)標(biāo)準(zhǔn)》
- 江西省三校生高考數(shù)學(xué)試卷
- 2025年高一數(shù)學(xué)必修一數(shù)學(xué)競賽模擬題
- 咨詢管理方案大綱模板
- 第四單元?dú)W洲風(fēng)情《友誼地久天長》《云雀》《愛的羅曼斯》課件人音版(簡譜)初中音樂七年級(jí)下冊
評論
0/150
提交評論