本發(fā)明屬于電子技術(shù)領(lǐng)域,尤其涉及一種用于音視頻Mp4文件加密解密系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,網(wǎng)絡(luò)教學(xué)資源越來(lái)越豐富,其中視頻資源作為遠(yuǎn)程視頻教學(xué)的載體,在資源發(fā)布與分享的過(guò)程中,如何從技術(shù)角度保護(hù)版權(quán)顯得非常重要。
目前存在視頻文件不經(jīng)授權(quán)直接拷貝播放的問(wèn)題。不能保護(hù)教學(xué)資源的版權(quán)。而且教學(xué)資源的版權(quán)在電機(jī)及變壓器實(shí)踐技能綜合實(shí)訓(xùn)—示范教學(xué)軟件中得不到實(shí)際應(yīng)用,效果不太理想。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種用于音視頻Mp4文件加密解密系統(tǒng),旨在解決目前存在視頻文件不經(jīng)授權(quán)直接拷貝播放的問(wèn)題。不能保護(hù)教學(xué)資源的版權(quán)。而且教學(xué)資源的版權(quán)在電機(jī)及變壓器實(shí)踐技能綜合實(shí)訓(xùn)—示范教學(xué)軟件中得不到實(shí)際應(yīng)用,效果不太理想的問(wèn)題。
本發(fā)明是這樣實(shí)現(xiàn)的,
一種用于音視頻Mp4文件加密解密系統(tǒng),該用于音視頻Mp4文件加密解密系統(tǒng)設(shè)置有音視頻Mp4文件加密模塊、儲(chǔ)存模塊、文件解密模塊、視圖模塊、控制模塊;
音視頻Mp4文件加密模塊與儲(chǔ)存模塊連接,通過(guò)向源視頻文件中插入長(zhǎng)度隨機(jī)的字節(jié),記錄插入的位置和字節(jié)長(zhǎng)度,將插入的位置和字節(jié)長(zhǎng)度信息記錄到密鑰文件中,并將密鑰文件記錄的信息發(fā)送給儲(chǔ)存模塊,
儲(chǔ)存模塊設(shè)置有數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)用于儲(chǔ)存音視頻Mp4文件加密模塊發(fā)送的密鑰文件記錄的信息;
音視頻Mp4文件解密模塊與儲(chǔ)存模塊連接,用于從儲(chǔ)存模塊的數(shù)據(jù)庫(kù)中獲取視頻文件對(duì)應(yīng)的密鑰文件記錄的信息,并將加密后的視頻文件中插入的隨機(jī)字符剔除,還原視頻文件;
視圖模塊與控制模塊連接,用于向用戶提供操作界面,輸入要加密的視頻文件的地址或目錄路徑信息和獲取要解密的音視頻Mp4文件信息,還用于向用戶播放解密后的視頻文件;
控制模塊與音視頻Mp4文件加密模塊和文件解密模塊連接,用于接收視圖模塊輸入的加密信息和解密信息,并將接受的信息傳輸給音視頻Mp4文件加密模塊和文件解密模塊。
進(jìn)一步,用于音視頻Mp4文件加密解密系統(tǒng)的加密解密方法為:加密時(shí),視圖模塊輸入要加密的視頻文件的地址信息,然后控制模塊向音視頻Mp4文件加密模塊傳送視頻源文件信息;解密時(shí),視圖模塊獲取要解密的音視頻Mp4文件信息,傳遞給控制模塊,控制模塊再連接音視頻Mp4文件解密模塊,完成解密,將解密后的視頻文件在視圖模塊進(jìn)行播放。
進(jìn)一步,加密方法具體包括以下步驟:
步驟一、定義隨機(jī)函數(shù)funA,根據(jù)視頻文件的長(zhǎng)度,產(chǎn)生若干對(duì)隨機(jī)整數(shù)(x,y),存入集合S{}中,并將集合S保存到數(shù)據(jù)庫(kù)中對(duì)應(yīng)的視頻文件屬性字段中,控制生成視頻加密文件大小的Y值<10;
步驟二、按字節(jié)讀取視頻文件流,從數(shù)據(jù)庫(kù)中依據(jù)視頻文件的信息,讀取存入的集合S{},獲取所有隨機(jī)數(shù)對(duì);
步驟三、根據(jù)數(shù)據(jù)對(duì)(x,y),在文件流中的X位置寫(xiě)入Y長(zhǎng)度的隨機(jī)字符串,將文件流寫(xiě)入加密視頻文件流中;
步驟四、重復(fù)步驟三,直到文件讀寫(xiě)完成。
進(jìn)一步,解密方法包括:
1)定義函數(shù)funB,從數(shù)據(jù)庫(kù)中獲取視頻文件對(duì)應(yīng)的密鑰文件記錄的信息,解析S{}集合,獲取加密時(shí)的隨機(jī)整數(shù)對(duì);
2)反向操作加密方法的步驟二至步驟四,讀取加密視頻文件流,寫(xiě)出到還原后的視頻文件中。
進(jìn)一步,
步驟一中定義隨機(jī)函數(shù)funA,根據(jù)視頻文件的長(zhǎng)度,產(chǎn)生若干對(duì)隨機(jī)整數(shù)(X,Y),存入集合S{}中,并將集合S保存到數(shù)據(jù)庫(kù)中對(duì)應(yīng)的視頻文件屬性字段中,具體包括:
第一步:獲取視頻文件的長(zhǎng)度L,從數(shù)據(jù)庫(kù)獲取初始參數(shù)D;
第二步:將L做為隨機(jī)函數(shù)的種子,生成隨機(jī)數(shù)X,X<L,同時(shí)生成隨機(jī)數(shù)Y,Y<10;
第三步:將<X,Y>添加到Map集合S{}中,然后重復(fù)第二,第三步直到重復(fù)D次;
第四步:將Map集合保存到視頻文件對(duì)應(yīng)的加密表中。
進(jìn)一步,步驟二中,按字節(jié)讀取視頻文件流,從數(shù)據(jù)庫(kù)中依據(jù)視頻文件的信息,讀取存入的集合S{},獲取所有隨機(jī)數(shù)對(duì),具體包括:
A、從視頻文件保存的位置以文件流的方式按字節(jié)讀取文件,形成視頻文件流Fin;
B、將視頻文件長(zhǎng)度信息,加密前的路徑信息和加密后的路徑信息保存到視頻文件對(duì)應(yīng)的加密表中。
進(jìn)一步,步驟三中根據(jù)數(shù)據(jù)對(duì)(x,y),在文件流中的X位置寫(xiě)入Y長(zhǎng)度的隨機(jī)字符串,將文件流寫(xiě)入加密視頻文件流中,具體包括:
a)遍歷Map集合S{},得到數(shù)對(duì)<X,Y>;
b)利用隨機(jī)函數(shù)生成長(zhǎng)度為Y的隨機(jī)字符串SKey;
c)根據(jù)加密后文件保存的路徑信息,生成文件輸出流Fout;
d)將SKey插入到Fout中的X位置;
e)將SKey保存到加密信息表中。
進(jìn)一步,步驟1)中定義函數(shù)funB,從數(shù)據(jù)庫(kù)中獲取視頻文件對(duì)應(yīng)的密鑰文件記錄的信息,具體為:定義函數(shù)funB,從數(shù)據(jù)庫(kù)中根據(jù)讀取的文件信息查找加密表中該文件的加密信息S{}、路徑信息Path及加密用隨機(jī)字符串SKey,從而獲取視頻文件對(duì)應(yīng)的密鑰文件記錄的信息。
進(jìn)一步,步驟1)中對(duì)S{}集合的解析過(guò)程如下:
(1)、讀取數(shù)據(jù)庫(kù)中字符串形式的S{}集合到字符串對(duì)象S中;
(2)、根據(jù)S串中的分隔符“;”,將字符串分解為“<x,y>”的字符串保存到數(shù)組A[]中;
(3)、遍歷數(shù)組A[],并將每個(gè)單元中的字符串先去掉首尾的“<”和“>”符號(hào),然后根據(jù)“,”分隔符分解“x,y”字符串,將得到的x和y值轉(zhuǎn)換為整數(shù),作為EntryMap項(xiàng)Key=x、value=y(tǒng),保存到Map集合M中,M即為分解后的集合,M中的Entry項(xiàng)即為分解后的隨機(jī)整數(shù)對(duì)。
本發(fā)明針對(duì)MP4視頻文件進(jìn)行加密,解密,在Web應(yīng)用的發(fā)布過(guò)程中,利用數(shù)據(jù)庫(kù)中保存的密鑰信息,將視頻加密后,隨發(fā)布程序交給用戶使用,用戶在打開(kāi)視頻播放時(shí)實(shí)現(xiàn)解密,設(shè)計(jì)簡(jiǎn)單實(shí)用;
本發(fā)明解決了視頻文件不經(jīng)授權(quán)直接拷貝播放的問(wèn)題。從而保護(hù)教學(xué)資源的版權(quán),本發(fā)明在電機(jī)及變壓器實(shí)踐技能綜合實(shí)訓(xùn)—示范教學(xué)軟件中得到了實(shí)際應(yīng)用,效果較為理想。示范教學(xué)軟件目前運(yùn)行于多所中職,高職,本科院校,軟件采用本發(fā)明進(jìn)行加密解密保護(hù)教學(xué)示范的視頻資源。
附圖說(shuō)明
圖1是本發(fā)明實(shí)施例提供的用于音視頻Mp4文件加密解密系統(tǒng)的加密方法流程圖;
圖2是本發(fā)明實(shí)施例提供的用于音視頻Mp4文件加密解密系統(tǒng)的解密方法流程圖;
圖3是本發(fā)明實(shí)施例提供的用于音視頻Mp4文件加密解密系統(tǒng)示意圖;
圖中:1、音視頻Mp4文件加密模塊;2、儲(chǔ)存模塊;3、音視頻Mp4文件解密模塊;4、視圖模塊;5、控制模塊。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
下面結(jié)合附圖對(duì)本發(fā)明的應(yīng)用原理作進(jìn)一步描述。
用于音視頻Mp4文件加密解密系統(tǒng)的加密解密方法為:加密時(shí),視圖模塊輸入要加密的視頻文件的地址信息,然后控制模塊向音視頻Mp4文件加密模塊傳送視頻源文件信息;解密時(shí),視圖模塊獲取要解密的音視頻Mp4文件信息,傳遞給控制模塊,控制模塊再連接音視頻Mp4文件解密模塊,完成解密,將解密后的視頻文件在視圖模塊進(jìn)行播放。
如圖1所示:加密方法包括以下步驟:
S101:定義隨機(jī)函數(shù)funA,根據(jù)視頻文件的長(zhǎng)度,產(chǎn)生若干對(duì)隨機(jī)整數(shù)(x,y),存入集合S{}中,并將集合S保存到數(shù)據(jù)庫(kù)中對(duì)應(yīng)的視頻文件屬性字段中,控制生成視頻加密文件大小的Y值<10;
S102:按字節(jié)讀取視頻文件流,從數(shù)據(jù)庫(kù)中依據(jù)視頻文件的信息,讀取存入的集合S{},獲取所有隨機(jī)數(shù)對(duì);
S103:根據(jù)數(shù)據(jù)對(duì)(x,y),在文件流中的X位置寫(xiě)入Y長(zhǎng)度的隨機(jī)字符串,將文件流寫(xiě)入加密視頻文件流中;
S104:重復(fù)步驟三,直到文件讀寫(xiě)完成。
如圖2所示:解密方法包括:
S201:定義函數(shù)funB,從數(shù)據(jù)庫(kù)中獲取視頻文件對(duì)應(yīng)的密鑰文件記錄的信息,解析S{}集合,獲取加密時(shí)的隨機(jī)整數(shù)對(duì);
S202:反向操作加密方法的S102至S104,讀取加密視頻文件流,寫(xiě)出到還原后的視頻文件中。
步驟一中定義隨機(jī)函數(shù)funA,根據(jù)視頻文件的長(zhǎng)度,產(chǎn)生若干對(duì)隨機(jī)整數(shù)(X,Y),存入集合S{}中,并將集合S保存到數(shù)據(jù)庫(kù)中對(duì)應(yīng)的視頻文件屬性字段中,具體包括:
第一步:獲取視頻文件的長(zhǎng)度L,從數(shù)據(jù)庫(kù)獲取初始參數(shù)D;
第二步:將L做為隨機(jī)函數(shù)的種子,生成隨機(jī)數(shù)X,X<L,同時(shí)生成隨機(jī)數(shù)Y,Y<10;
第三步:將<X,Y>添加到Map集合S{}中,然后重復(fù)第二,第三步直到重復(fù)D次;
第四步:將Map集合保存到視頻文件對(duì)應(yīng)的加密表中。
步驟二中,按字節(jié)讀取視頻文件流,從數(shù)據(jù)庫(kù)中依據(jù)視頻文件的信息,讀取存入的集合S{},獲取所有隨機(jī)數(shù)對(duì),具體包括:
A、從視頻文件保存的位置以文件流的方式按字節(jié)讀取文件,形成視頻文件流Fin;
B、將視頻文件長(zhǎng)度信息,加密前的路徑信息和加密后的路徑信息保存到視頻文件對(duì)應(yīng)的加密表中。
步驟三中根據(jù)數(shù)據(jù)對(duì)(x,y),在文件流中的X位置寫(xiě)入Y長(zhǎng)度的隨機(jī)字符串,將文件流寫(xiě)入加密視頻文件流中,具體包括:
a)遍歷Map集合S{},得到數(shù)對(duì)<X,Y>;
b)利用隨機(jī)函數(shù)生成長(zhǎng)度為Y的隨機(jī)字符串SKey;
c)根據(jù)加密后文件保存的路徑信息,生成文件輸出流Fout;
d)將SKey插入到Fout中的X位置;
e)將SKey保存到加密信息表中。
步驟1)中定義函數(shù)funB,從數(shù)據(jù)庫(kù)中獲取視頻文件對(duì)應(yīng)的密鑰文件記錄的信息,具體為:定義函數(shù)funB,從數(shù)據(jù)庫(kù)中根據(jù)讀取的文件信息查找加密表中該文件的加密信息S{}、路徑信息Path及加密用隨機(jī)字符串SKey,從而獲取視頻文件對(duì)應(yīng)的密鑰文件記錄的信息。
步驟1)中對(duì)S{}集合的解析過(guò)程如下:
(1)、讀取數(shù)據(jù)庫(kù)中字符串形式的S{}集合到字符串對(duì)象S中;
(2)、根據(jù)S串中的分隔符“;”,將字符串分解為“<x,y>”的字符串保存到數(shù)組A[]中;
(3)、遍歷數(shù)組A[],并將每個(gè)單元中的字符串先去掉首尾的“<”和“>”符號(hào),然后根據(jù)“,”分隔符分解“x,y”字符串,將得到的x和y值轉(zhuǎn)換為整數(shù),作為EntryMap項(xiàng)Key=x、value=y(tǒng),保存到Map集合M中,M即為分解后的集合,M中的Entry項(xiàng)即為分解后的隨機(jī)整數(shù)對(duì)。
解密過(guò)程同加密過(guò)程相反。
如圖3所示:一種用于音視頻Mp4文件加密解密系統(tǒng),該用于音視頻Mp4文件加密解密系統(tǒng)設(shè)置有音視頻Mp4文件加密模塊1、儲(chǔ)存模塊2、音視頻Mp4文件解密模塊3;視圖模塊4、控制模塊5;
音視頻Mp4文件加密模塊1與儲(chǔ)存模塊2連接,通過(guò)向源視頻文件中插入長(zhǎng)度隨機(jī)的字節(jié),記錄插入的位置和字節(jié)長(zhǎng)度,將插入的位置和字節(jié)長(zhǎng)度信息記錄到密鑰文件中,并將密鑰文件記錄的信息發(fā)送給儲(chǔ)存模塊,
儲(chǔ)存模塊2設(shè)置有數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)用于儲(chǔ)存音視頻Mp4文件加密模塊發(fā)送的密鑰文件記錄的信息;
音視頻Mp4文件解密模塊3與儲(chǔ)存模塊連接,用于從儲(chǔ)存模塊的數(shù)據(jù)庫(kù)中獲取視頻文件對(duì)應(yīng)的密鑰文件記錄的信息,并將加密后的視頻文件中插入的隨機(jī)字符剔除,還原視頻文件。
視圖模塊與控制模塊連接,用于向用戶提供操作界面,輸入要加密的視頻文件的地址或目錄路徑信息和獲取要解密的音視頻Mp4文件信息,還用于向用戶播放解密后的視頻文件;
控制模塊與音視頻Mp4文件加密模塊和文件解密模塊連接,用于接收視圖模塊輸入的加密信息和解密信息,并將接受的信息傳輸給音視頻Mp4文件加密模塊和文件解密模塊。
本發(fā)明針對(duì)MP4視頻文件進(jìn)行加密,解密,在Web應(yīng)用的發(fā)布過(guò)程中,利用數(shù)據(jù)庫(kù)中保存的密鑰信息,將視頻加密后,隨發(fā)布程序交給用戶使用,用戶在打開(kāi)視頻播放時(shí)實(shí)現(xiàn)解密,設(shè)計(jì)簡(jiǎn)單實(shí)用;
本發(fā)明解決了視頻文件不經(jīng)授權(quán)直接拷貝播放的問(wèn)題。從而保護(hù)教學(xué)資源的版權(quán),本發(fā)明在電機(jī)及變壓器實(shí)踐技能綜合實(shí)訓(xùn)—示范教學(xué)軟件中得到了實(shí)際應(yīng)用,效果較為理想。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。