本發(fā)明涉及一種基于Android系統(tǒng)無連接環(huán)境的加密數(shù)據(jù)傳輸方法。
背景技術(shù):
依據(jù)現(xiàn)有技術(shù)方案,Android設(shè)備進(jìn)行無線數(shù)據(jù)傳輸,必然需要使設(shè)備雙方接入同一局域網(wǎng)或廣域網(wǎng),若其中存在一個孤島設(shè)備(未接入任何網(wǎng)絡(luò)),則數(shù)據(jù)傳輸操作不易完成。即使一方發(fā)送廣播數(shù)據(jù)包,另一方也只能收到無法明確來源的,經(jīng)過加密的數(shù)據(jù)。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種基于Android系統(tǒng)無連接環(huán)境的加密數(shù)據(jù)傳輸方法,該方法能夠在無連接的環(huán)境下,在Android設(shè)備之間傳輸少量加密敏感信息。
本發(fā)明的目的是通過以下技術(shù)方案來實現(xiàn)的:一種基于Android系統(tǒng)無連接環(huán)境的加密數(shù)據(jù)傳輸方法,數(shù)據(jù)流向為從發(fā)送方設(shè)備Android應(yīng)用程序,經(jīng)接收方設(shè)備Linux應(yīng)用程序,最后傳輸?shù)缴蠈覣ndroid應(yīng)用程序,它包括如下步驟:
S1:發(fā)送方設(shè)備啟動Android應(yīng)用程序,生成當(dāng)前會話加密秘鑰,將待傳輸數(shù)據(jù)通過該秘鑰進(jìn)行加密,將密文進(jìn)行分片存儲;
S2:將每個分片存儲的密文,編碼進(jìn)組播IP地址中;
S3:發(fā)送方設(shè)備Android應(yīng)用程序向所有編碼的組播IP地址循環(huán)發(fā)送包含固定標(biāo)識的數(shù)據(jù)包;
S4:接收方設(shè)備啟動Linux應(yīng)用程序,將網(wǎng)卡芯片置于監(jiān)聽模式,監(jiān)聽MAC層無線數(shù)據(jù)包,并建立二維表結(jié)構(gòu),分類存儲監(jiān)聽到的數(shù)據(jù)包,進(jìn)行數(shù)據(jù)包排序,校驗數(shù)據(jù)包完整性;
S5:接收方將收到的加密數(shù)據(jù)拼接成完整的數(shù)據(jù)包后,由Linux應(yīng)用程序傳輸給Android應(yīng)用程序;
S6:Android應(yīng)用程序生成當(dāng)前會話解密秘鑰,對數(shù)據(jù)進(jìn)行解密;
S7:數(shù)據(jù)傳輸完成。
所述的當(dāng)前會話加密與解密秘鑰按時間區(qū)塊生成。
所述的密文按單位長度進(jìn)行分片存儲。
所述的組播IP地址中包括標(biāo)識該分片密文序列的序列標(biāo)識,以及標(biāo)識該分片密文位置的位置標(biāo)識。
所述的二維表結(jié)構(gòu)為二維鏈表結(jié)構(gòu)、二維數(shù)組或類似數(shù)據(jù)結(jié)構(gòu)。
所述的步驟S4中進(jìn)行數(shù)據(jù)包分類存儲的分類依據(jù)為源MAC地址,每個二維表結(jié)構(gòu)里面的數(shù)據(jù),由目的MAC地址解析得來,排序依據(jù)為解析出的序列標(biāo)識;數(shù)據(jù)包完整性校驗的方法為,判斷已收到數(shù)據(jù)包總數(shù)是否等于位置標(biāo)識為結(jié)尾的數(shù)據(jù)包中的序列標(biāo)識值。
本發(fā)明的有益效果是:本發(fā)明提供了一種基于Android系統(tǒng)無連接環(huán)境的加密數(shù)據(jù)傳輸方法,該方法適用于無連接環(huán)境下,在Android設(shè)備之間傳輸少量加密敏感信息,例如賬號信息,身份認(rèn)證信息等。
附圖說明
圖1為本發(fā)明整體框架圖;
圖2為數(shù)據(jù)編碼示意圖;
圖3為數(shù)據(jù)包排序示意圖。
具體實施方式
下面結(jié)合附圖進(jìn)一步詳細(xì)描述本發(fā)明的技術(shù)方案,但本發(fā)明的保護(hù)范圍不局限于以下所述。
如圖1所示,一種基于Android系統(tǒng)無連接環(huán)境的加密數(shù)據(jù)傳輸方法,數(shù)據(jù)流向為從發(fā)送方設(shè)備Android應(yīng)用程序,經(jīng)接收方設(shè)備Linux應(yīng)用程序,最后傳輸?shù)缴蠈覣ndroid應(yīng)用程序,它包括如下步驟:
S1:發(fā)送方設(shè)備啟動Android應(yīng)用程序,按時間區(qū)塊生成當(dāng)前會話加密秘鑰,將待傳輸數(shù)據(jù)通過該秘鑰進(jìn)行加密,將密文按單位長度進(jìn)行分片存儲;
S2:將每個分片存儲的密文,編碼進(jìn)組播IP地址中,其中附上標(biāo)識該分片密文序列的序列標(biāo)識,以及標(biāo)識該分片密文位置的位置標(biāo)識,如圖2所示;
S3:發(fā)送方設(shè)備Android應(yīng)用程序向所有編碼的組播IP地址循環(huán)發(fā)送包含固定標(biāo)識的數(shù)據(jù)包;
S4:接收方設(shè)備啟動Linux應(yīng)用程序,將網(wǎng)卡芯片置于監(jiān)聽模式,監(jiān)聽MAC層無線數(shù)據(jù)包,并建立二維表結(jié)構(gòu),分類存儲監(jiān)聽到的數(shù)據(jù)包,進(jìn)行數(shù)據(jù)包排序,校驗數(shù)據(jù)包完整性;如圖3所示為監(jiān)聽數(shù)據(jù)包后建立的二維鏈表結(jié)構(gòu),其中分類依據(jù)為源MAC地址,每個鏈表里的數(shù)據(jù),由目的MAC地址解析得來(目的MAC地址與組播IP地址存在映射關(guān)系,故此處通過目的MAC地址取得組播IP地址中編碼的數(shù)據(jù)),排序依據(jù)為解析出的序列標(biāo)識,數(shù)據(jù)包完整性校驗的方法為,判斷已收到數(shù)據(jù)包總數(shù)是否等于位置標(biāo)識為結(jié)尾的數(shù)據(jù)包中的序列標(biāo)識值。在圖3中,位置標(biāo)識0代表非結(jié)尾數(shù)據(jù)包,1代表結(jié)尾數(shù)據(jù)包,圖中顯示的是已收到發(fā)送方2傳輸過來的完整加密數(shù)據(jù)包。
S5:在接收方設(shè)備內(nèi)部,將收到的加密數(shù)據(jù)拼接成完整的數(shù)據(jù)包后,由Linux應(yīng)用程序傳輸給Android應(yīng)用程序;
S6:Android應(yīng)用程序按時間區(qū)塊生成當(dāng)前會話解密秘鑰,對數(shù)據(jù)進(jìn)行解密;
S7:數(shù)據(jù)傳輸完成。
所述的二維表結(jié)構(gòu)為二維鏈表結(jié)構(gòu)、二維數(shù)組或其他類似數(shù)據(jù)結(jié)構(gòu)。