本發(fā)明涉及信息加密技術(shù)領(lǐng)域,特別是涉及一種用于視頻數(shù)據(jù)傳輸?shù)淖詣幼R別加密解密方法及系統(tǒng)。
背景技術(shù):
隨著科技飛速發(fā)展,電子數(shù)據(jù)的傳播已經(jīng)廣泛融入到人們的日常生活中,例如,視頻、音頻等數(shù)據(jù)等電子數(shù)據(jù)。
人們可以利用通訊設(shè)備來存儲電子數(shù)據(jù),有些涉及個人隱私的資料(例如,部分照片、視頻、手機(jī)銀行的資料)不希望被其它人輕易訪問,可以對不希望被其它人訪問的資料進(jìn)行加密。相關(guān)技術(shù)中,加密方式通常是密碼加密,加密的密碼可以是字符、數(shù)字或圖案等;當(dāng)訪問加密的資料時需要輸入正確的密碼。
現(xiàn)今,常用的視頻加密解密工具通常是面向用戶手動操作的軟件工具,主要類型如下:
1)用戶需手動打開軟件后選擇需要加密或解密的視頻文件,之后選擇相應(yīng)加密或解密操作;
2)用戶需人為判斷該視頻是否已被加密,如嘗試播放視頻文件,若無法正常播放則該視頻文件可能被加密。
常規(guī)的加解密軟件工具的加密或解密的操作需要人為執(zhí)行,不便于用戶的使用,加密和解密的過程緩慢。將文件的所有部分加密雖然安全性高,但是極大的占用內(nèi)存空間,不利于文件的存儲和傳輸。并且無法對指定位置進(jìn)行加密或解密操作,使用不靈活。
技術(shù)實現(xiàn)要素:
為解決上述技術(shù)問題,本發(fā)明采用下述技術(shù)方案
一種用于視頻數(shù)據(jù)傳輸?shù)淖詣幼R別加密解密方法,該方法的步驟包括:
S1、獲取待傳輸視頻文件的傳遞參數(shù),確認(rèn)待傳輸視頻文件路徑和待傳輸視頻文件的當(dāng)前狀態(tài);
S2、根據(jù)用戶加密或解密指令,對當(dāng)前待傳輸視頻文件進(jìn)行加密或解密處理;
S3、判斷加密或解密處理操作是否成功,并將最終的操作狀態(tài)返回給用戶,完成自動識別加密操作。
優(yōu)選地,所述待傳輸視頻文件的當(dāng)前狀態(tài)包括:已加密、已解密和未處理三種狀態(tài)。
優(yōu)選地,所述步驟S2包括:
S21、對最大嘗試加密或解密操作次數(shù)maxCount、當(dāng)前加密或解密操作次數(shù)count和視頻加密或解密結(jié)果的初始狀態(tài)進(jìn)行初始化設(shè)定;
S22、通過判斷條件:加密或解密狀態(tài)是否為操作失敗狀態(tài)且當(dāng)前加密或解密次數(shù)count小于最大嘗試加密或解密操作次數(shù)maxCount,決定是否可以嘗試為待傳輸視頻文件加密;若滿足判斷條件,則執(zhí)行步驟S23,若不滿足判斷條件,則執(zhí)行步驟S3;
S23、為視頻文件設(shè)置加密或解密操作的操作標(biāo)識,并判斷操作標(biāo)識設(shè)置是否成功,若成功,則執(zhí)行步驟S24,若失敗,則嘗試加密或解密操作次數(shù)count加1,并重復(fù)步驟S22和S23,直至標(biāo)識成功或不滿足步驟S22的判斷條件為止;
S24、根據(jù)用戶需求,對待傳輸視頻文件指定位置的內(nèi)容進(jìn)行加密或解密操作;
S25、判斷加密或解密操作是否成功,若成功,則完成待傳輸視頻文件的加密或解密操作,若失敗,則執(zhí)行步驟S22至S25,直至操作成功或不滿足步驟S22的判斷條件為止。
優(yōu)選地,所述S24包括:
S241、將待傳輸視頻文件的頭部1024字節(jié)作為加密或解密的對象;
S242、設(shè)初始位置為site=0;
S243、判斷當(dāng)前待傳輸視頻文件的頭部1024字節(jié)是否加密完成,若未完成,則從1024字節(jié)中取出16字節(jié)的數(shù)據(jù),并對這16個字節(jié)數(shù)據(jù)進(jìn)行加密處理,若已完成加密,則從1024字節(jié)中取出16字節(jié)的數(shù)據(jù),并對這16個字節(jié)數(shù)據(jù)進(jìn)行解密處理;
S244、將加密或解密后的數(shù)據(jù)寫入site處,若寫失敗則退出;
S245、再在所述1024字節(jié)中取16字節(jié),即為site=site+16,并重復(fù)執(zhí)行步驟S243至步驟S245,直至所述1024字節(jié)數(shù)據(jù)全部加密或解密完成。
優(yōu)選地,所述步驟S243中若讀取數(shù)據(jù)失敗或加密/解密操作失敗,則直接退出。
優(yōu)選地,所述步驟S3包括:
S31、若加密或解密操作成功,則返回操作成功狀態(tài);
S32、若加密或解密操作失敗,則嘗試回滾到視頻文件進(jìn)行加密或解密操作前的狀態(tài);
S33、若回滾操作成功,則返回操作失敗狀態(tài),若回滾操作失敗,則返回?zé)o法復(fù)原狀態(tài)。
一種用于視頻數(shù)據(jù)傳輸?shù)淖詣幼R別加密系統(tǒng),該系統(tǒng)包括:
文件識別單元,獲取視頻文件傳輸請求,確認(rèn)待傳輸視頻文件路徑和待傳輸視頻文件的當(dāng)前狀態(tài);
加密單元,根據(jù)用戶加密或解密指令,對當(dāng)前待傳輸視頻文件進(jìn)行加密或解密處理;
狀態(tài)反饋單元,判斷加密或解密處理操作是否成功,并將最終的操作狀態(tài)返回給用戶,完成自動識別加密操作。
優(yōu)選地,所述待傳輸視頻文件的當(dāng)前狀態(tài)包括:已加密、已解密和未處理三種狀態(tài)。
優(yōu)選地,所述加密單元內(nèi)包括:
初始化模塊,對最大嘗試加密或解密操作次數(shù)maxCount、當(dāng)前加密或解密操作次數(shù)count和視頻加密或解密結(jié)果的初始狀態(tài)進(jìn)行初始化設(shè)定;
第一判斷模塊,通過判斷條件:加密或解密狀態(tài)是否為操作失敗狀態(tài)且當(dāng)前加密或解密次數(shù)count小于最大嘗試加密或解密操作次數(shù)maxCount,決定是否可以嘗試為待傳輸視頻文件加密;若滿足判斷條件,則為視頻文件設(shè)置加密或解密操作的操作標(biāo)識,若不滿足判斷條件,則向用戶返回狀態(tài)反饋單元確定的操作狀態(tài);
操作標(biāo)識設(shè)定模塊,為視頻文件設(shè)置加密或解密操作的操作標(biāo)識,并判斷操作標(biāo)識設(shè)置是否成功,若成功,則進(jìn)行用戶指定內(nèi)容加密或解密操作,若失敗,則嘗試加密或解密操作次數(shù)count加1,并重復(fù)步驟第一判斷模塊和操作標(biāo)識設(shè)定模塊的操作,直至標(biāo)識成功或不滿足第一判斷模塊的判斷條件為止;
指定內(nèi)容處理模塊,根據(jù)用戶需求,對待傳輸視頻文件指定位置的內(nèi)容進(jìn)行加密或解密操作;
第二判斷模塊,判斷加密或解密操作是否成功,若成功,則完成待傳輸視頻文件的加密或解密操作,若失敗,則執(zhí)行第一判斷模塊、操作標(biāo)識設(shè)定模塊、指定內(nèi)容處理模塊和第二判斷模塊的操作,直至操作成功或不滿足第一判斷模塊的判斷條件為止。
優(yōu)選地,所述狀態(tài)反饋單元包括:
加密結(jié)果判斷模塊,若加密或解密操作成功,則返回操作成功狀態(tài),若加密或解密操作失敗,則嘗試回滾到視頻文件進(jìn)行加密或解密操作前的狀態(tài);
回滾結(jié)果判斷模塊,若回滾操作成功,則返回操作失敗狀態(tài),若回滾操作失敗,則返回?zé)o法復(fù)原狀態(tài)。
本發(fā)明的有益效果如下:
本發(fā)明所述技術(shù)方案通過調(diào)用方式運行,而非界面式手動操作,方便系統(tǒng)或程序調(diào)用執(zhí)行。增加加密或解密狀態(tài)標(biāo)識,方便系統(tǒng)或程序判斷文件加密或解密狀態(tài)。利用本方案生成庫文件,大大降低了該工具插件的存儲空間,極大的提高了加解密的速度。
附圖說明
下面結(jié)合附圖對本發(fā)明的具體實施方式作進(jìn)一步詳細(xì)的說明;
圖1示出本方案所述自動識別加密解密方法的示意圖;
圖2示出本方案所述局部循環(huán)加密或解密方法的示意圖。
具體實施方式
為了更清楚地說明本發(fā)明,下面結(jié)合優(yōu)選實施例和附圖對本發(fā)明做進(jìn)一步的說明。附圖中相似的部件以相同的附圖標(biāo)記進(jìn)行表示。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,下面所具體描述的內(nèi)容是說明性的而非限制性的,不應(yīng)以此限制本發(fā)明的保護(hù)范圍。
如圖1所示,本發(fā)明公開了一種用于視頻數(shù)據(jù)傳輸?shù)淖詣幼R別加密解密方法,該方法的步驟包括:
步驟S1、獲取待傳輸視頻文件的傳遞參數(shù),確認(rèn)待傳輸視頻文件路徑和待傳輸視頻文件的當(dāng)前狀態(tài);其中,所述待傳輸視頻文件的當(dāng)前狀態(tài)包括:已加密、已解密和未處理三種狀態(tài)。其中,該步驟中需調(diào)用兩個參數(shù),第一參數(shù)為待加密視頻文件路徑,第二參數(shù)為操作參數(shù),并通過以下代碼表示:
數(shù)字0代表解密,傳遞此參數(shù),方法會對視頻進(jìn)行解密操作;
數(shù)字1代表加密,傳遞此參數(shù),方法會對視頻進(jìn)行加密操作;
數(shù)字2代表獲取視頻文件狀態(tài),傳遞此參數(shù),方法只檢查文件當(dāng)前狀態(tài),會返回三種狀態(tài),即數(shù)字0代表文件未進(jìn)行任何處理;數(shù)字1代表文件已加密;數(shù)字2代表文件已解密。
步驟S2、根據(jù)用戶加密或解密指令,對當(dāng)前待傳輸視頻文件進(jìn)行加密或解密處理。該步驟S2包括:
S21、對最大嘗試加密或解密操作次數(shù)maxCount、當(dāng)前加密或解密操作次數(shù)count和視頻加密或解密結(jié)果的初始狀態(tài)進(jìn)行初始化設(shè)定;
S22、通過判斷條件:加密或解密狀態(tài)是否為操作失敗狀態(tài)且當(dāng)前加密或解密次數(shù)count小于最大嘗試加密或解密操作次數(shù)maxCount,決定是否可以嘗試為待傳輸視頻文件加密;若滿足判斷條件,則執(zhí)行步驟S23,若不滿足判斷條件,則執(zhí)行步驟S3;
S23、為視頻文件設(shè)置加密或解密操作的操作標(biāo)識,并判斷操作標(biāo)識設(shè)置是否成功,若成功,則執(zhí)行步驟S24,若失敗,則嘗試加密或解密操作次數(shù)count加1,并重復(fù)步驟S22和S23,直至標(biāo)識成功或不滿足步驟S22的判斷條件為止;
S24、根據(jù)用戶需求,對待傳輸視頻文件指定位置的內(nèi)容進(jìn)行加密或解密操作;其中,如圖2所示,該步驟S24包括:
S241、將待傳輸視頻文件的頭部1024字節(jié)作為加密或解密的對象;
S242、設(shè)初始位置為site=0;
S243、判斷當(dāng)前待傳輸視頻文件的頭部1024字節(jié)是否加密完成,若未完成,則從1024字節(jié)中取出16字節(jié)的數(shù)據(jù),并對這16個字節(jié)數(shù)據(jù)進(jìn)行加密處理,若已完成加密,則從1024字節(jié)中取出16字節(jié)的數(shù)據(jù),并對這16個字節(jié)數(shù)據(jù)進(jìn)行解密處理;該步驟中若讀取數(shù)據(jù)失敗或加密/解密操作失敗,則直接退出
S244、將加密或解密后的數(shù)據(jù)寫入site處,若寫失敗則退出;
S245、再在所述1024字節(jié)中取16字節(jié),即為site=site+16,并重復(fù)執(zhí)行步驟S243至步驟S245,直至所述1024字節(jié)數(shù)據(jù)全部加密或解密完成;
S25、判斷加密或解密操作是否成功,若成功,則完成待傳輸視頻文件的加密或解密操作,若失敗,則執(zhí)行步驟S22至S25,直至操作成功或不滿足步驟S22的判斷條件為止。
S3、判斷加密或解密處理操作是否成功,并將最終的操作狀態(tài)返回給用戶,完成自動識別加密操作。所述步驟S3包括:
S31、若加密或解密操作成功,則返回操作成功狀態(tài);
S32、若加密或解密操作失敗,則嘗試回滾到視頻文件進(jìn)行加密或解密操作前的狀態(tài);
S33、若回滾操作成功,則返回操作失敗狀態(tài),若回滾操作失敗,則返回?zé)o法復(fù)原狀態(tài)。
本方案進(jìn)一步公開了一種用于視頻數(shù)據(jù)傳輸?shù)淖詣幼R別加密系統(tǒng),該系統(tǒng)包括:
文件識別單元,獲取視頻文件傳輸請求,確認(rèn)待傳輸視頻文件路徑和待傳輸視頻文件的當(dāng)前狀態(tài),即已加密、已解密或未處理三種狀態(tài);
加密單元,根據(jù)用戶加密或解密指令,對當(dāng)前待傳輸視頻文件進(jìn)行加密或解密處理;所述加密單元內(nèi)包括:
初始化模塊,對最大嘗試加密或解密操作次數(shù)maxCount、當(dāng)前加密或解密操作次數(shù)count和視頻加密或解密結(jié)果的初始狀態(tài)進(jìn)行初始化設(shè)定;
第一判斷模塊,通過判斷條件:加密或解密狀態(tài)是否為操作失敗狀態(tài)且當(dāng)前加密或解密次數(shù)count小于最大嘗試加密或解密操作次數(shù)maxCount,決定是否可以嘗試為待傳輸視頻文件加密;若滿足判斷條件,則為視頻文件設(shè)置加密或解密操作的操作標(biāo)識,若不滿足判斷條件,則向用戶返回狀態(tài)反饋單元確定的操作狀態(tài);
操作標(biāo)識設(shè)定模塊,為視頻文件設(shè)置加密或解密操作的操作標(biāo)識,并判斷操作標(biāo)識設(shè)置是否成功,若成功,則進(jìn)行用戶指定內(nèi)容加密或解密操作,若失敗,則嘗試加密或解密操作次數(shù)count加1,并重復(fù)步驟第一判斷模塊和操作標(biāo)識設(shè)定模塊的操作,直至標(biāo)識成功或不滿足第一判斷模塊的判斷條件為止;
指定內(nèi)容處理模塊,根據(jù)用戶需求,對待傳輸視頻文件指定位置的內(nèi)容進(jìn)行加密或解密操作;
第二判斷模塊,判斷加密或解密操作是否成功,若成功,則完成待傳輸視頻文件的加密或解密操作,若失敗,則執(zhí)行第一判斷模塊、操作標(biāo)識設(shè)定模塊、指定內(nèi)容處理模塊和第二判斷模塊的操作,直至操作成功或不滿足第一判斷模塊的判斷條件為止。
狀態(tài)反饋單元,判斷加密或解密處理操作是否成功,并將最終的操作狀態(tài)返回給用戶,完成自動識別加密操作。所述狀態(tài)反饋單元包括:
加密結(jié)果判斷模塊,若加密或解密操作成功,則返回操作成功狀態(tài),若加密或解密操作失敗,則嘗試回滾到視頻文件進(jìn)行加密或解密操作前的狀態(tài);
回滾結(jié)果判斷模塊,若回滾操作成功,則返回操作失敗狀態(tài),若回滾操作失敗,則返回?zé)o法復(fù)原狀態(tài)。
本方案可以采用C/C++語言編寫,生成系統(tǒng)環(huán)境下能夠調(diào)用的動態(tài)庫,供視頻軟件調(diào)用。例如,生成Android環(huán)境下可以調(diào)用的動態(tài)庫so文件,供Android環(huán)境的視頻軟件調(diào)用。本方案如采用常規(guī)代碼占用存儲空間大小為104k,若編譯生成庫文件占用存儲空間30k左右,更加適合服務(wù)器或其他相關(guān)視頻播放軟件的快速調(diào)用。
下面通過一組實施例對本發(fā)明做進(jìn)一步說明:
如圖1所示,本發(fā)明提供了一種用于視頻數(shù)據(jù)傳輸?shù)淖詣幼R別加密解密方法。該方法的具體步驟如下:
在步驟S1中,獲取并處理傳遞的參數(shù),包括需加密或解密的視頻文件路徑、具體操作指令;其中,具體操作指令為查看視頻文件的加解密狀態(tài)、加密操作和解密操作。如果操作指令為查看視頻文件的加解密狀態(tài),則執(zhí)行步驟S2。
S2步驟中會對視頻文件進(jìn)行狀態(tài)判斷,返回狀態(tài)有已加密、已解密和未處理三種狀態(tài)。已加密狀態(tài)表示目標(biāo)視頻現(xiàn)在為加密狀態(tài),需進(jìn)行解密才能正常瀏覽;已解密狀態(tài)表示目標(biāo)視頻現(xiàn)在為解密狀態(tài),可以進(jìn)行瀏覽;未處理狀態(tài)表示該視頻從未進(jìn)行過加密或解密操作。
如果操作指令為加密或解密視頻視頻文件,則執(zhí)行步驟S3。
S2步驟會根據(jù)指令對視頻文件進(jìn)行加密或解密操作,操作完成后執(zhí)行S3返回加密/解密操作的執(zhí)行結(jié)果,結(jié)果分為加密或解密成功能;加密或解密失敗,如果加密或解密失敗程序會嘗試回滾視頻文件操作前狀態(tài);視頻文件無法復(fù)原,當(dāng)加密或解密失敗后,回滾操作也同樣失敗時,會返回該狀態(tài)標(biāo)識。當(dāng)操作指令為加密或解密視頻文件時,執(zhí)行步驟S3。
對于步驟S2中具體的加密或解密流程是通過本方案構(gòu)建的局部循環(huán)加密或解密方法,該方法的具體執(zhí)行步驟包括:
S21、對最大嘗試加密或解密操作次數(shù)maxCount、當(dāng)前加密或解密操作次數(shù)count和視頻加密或解密結(jié)果的初始狀態(tài)進(jìn)行初始化設(shè)定;
S22、通過判斷條件:加密或解密狀態(tài)是否為操作失敗狀態(tài)且當(dāng)前加密或解密次數(shù)count小于最大嘗試加密或解密操作次數(shù)maxCount,決定是否可以嘗試為待傳輸視頻文件加密;若滿足判斷條件,則執(zhí)行步驟S23,若不滿足判斷條件,則執(zhí)行步驟S3;
S23、為視頻文件設(shè)置加密或解密操作的操作標(biāo)識,并判斷操作標(biāo)識設(shè)置是否成功,若成功,則執(zhí)行步驟S24,若失敗,則嘗試加密或解密操作次數(shù)count加1,并重復(fù)步驟S22和S23,直至標(biāo)識成功或不滿足步驟S22的判斷條件為止;
S24、根據(jù)用戶需求,對待傳輸視頻文件指定位置的內(nèi)容進(jìn)行加密或解密操作;
S25、判斷加密或解密操作是否成功,若成功,則完成待傳輸視頻文件的加密或解密操作,若失敗,則執(zhí)行步驟S22至S25,直至操作成功或不滿足步驟S22的判斷條件為止。
4、根據(jù)權(quán)利要求1所述的自動識別加密方法,其特征在于,所述S24包括:
S241、將待傳輸視頻文件的頭部1024字節(jié)作為加密或解密的對象;
S242、設(shè)初始位置為site=0;
S243、判斷當(dāng)前待傳輸視頻文件的頭部1024字節(jié)是否加密完成,若未完成,則從1024字節(jié)中取出16字節(jié)的數(shù)據(jù),并對這16個字節(jié)數(shù)據(jù)進(jìn)行加密處理,若已完成加密,則從1024字節(jié)中取出16字節(jié)的數(shù)據(jù),并對這16個字節(jié)數(shù)據(jù)進(jìn)行解密處理;若讀取數(shù)據(jù)失敗或加密/解密操作失敗,則直接退出;
S244、將加密或解密后的數(shù)據(jù)寫入site處,若寫失敗則退出;
S245、再在所述1024字節(jié)中取16字節(jié),即為site=site+16,并重復(fù)執(zhí)行步驟S243至步驟S245,直至所述1024字節(jié)數(shù)據(jù)全部加密或解密完成。
在state為操作成功狀態(tài),或者已加密或解密操作次數(shù)大于等于最大嘗試加密或解密操作次數(shù)后會進(jìn)入步驟S3。
步驟S3中根據(jù)最終結(jié)果會做如下操作,當(dāng)加密或解密操作成功時,返回操作成功狀態(tài);當(dāng)加密或解密操作失敗后,嘗試回滾到視頻文件操作前狀態(tài),如果成功回滾,返回操作失敗狀態(tài);如果回滾操作也失敗,則返回?zé)o法復(fù)原狀態(tài)。
整體視頻加密或解密視頻文件操作完成。
顯然,本發(fā)明的上述實施例僅僅是為清楚地說明本發(fā)明所作的舉例,而并非是對本發(fā)明的實施方式的限定,對于所屬領(lǐng)域的普通技術(shù)人員來說,在上述說明的基礎(chǔ)上還可以做出其它不同形式的變化或變動,這里無法對所有的實施方式予以窮舉,凡是屬于本發(fā)明的技術(shù)方案所引伸出的顯而易見的變化或變動仍處于本發(fā)明的保護(hù)范圍之列。