本發(fā)明涉及本發(fā)明涉及直播視頻流播放技術(shù)領(lǐng)域,特別涉及一種在flash中對(duì)圖片資源進(jìn)行加密保護(hù)的方法及裝置。
背景技術(shù):
目前,flash被廣泛的用于網(wǎng)頁(yè)設(shè)計(jì)和網(wǎng)頁(yè)動(dòng)畫制作及網(wǎng)頁(yè)視頻播放等。大多數(shù)的視頻網(wǎng)站包括直播網(wǎng)站都采用flash做為其視頻播放器,并且大多數(shù)的網(wǎng)頁(yè)游戲也會(huì)使用flash來(lái)開發(fā),flash中一般都會(huì)大量的使用到圖片資源,使用的圖片要么是從之前下載好的圖片資源緩存在本地后進(jìn)行加載,要么是從服務(wù)器中下載后來(lái)進(jìn)行加載及顯示。由于圖片資源在網(wǎng)絡(luò)中是明文傳輸?shù)?,所以比較容易被hack破解,從而獲取到所有的圖片資源,最終對(duì)flash開發(fā)商造成極大的損失。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了本發(fā)明實(shí)施例提供了一種在flash中對(duì)圖片資源進(jìn)行加密保護(hù)的方法及裝置,保障了圖片資源的傳輸以及使用時(shí)的安全性,提高h(yuǎn)ack獲取原始圖片資源的門檻,從而可以極大的加強(qiáng)圖片資源的保護(hù)。
第一方面,本申請(qǐng)?zhí)峁┮环N在flash中對(duì)圖片資源進(jìn)行加密保護(hù)的方法,應(yīng)用于服務(wù)器,該方法包括:
接收用戶終端發(fā)送的加載第一圖片的請(qǐng)求,所述第一圖片為保存在所述服務(wù)器中并被目標(biāo)flash文件調(diào)用的圖片;
對(duì)所述第一圖片進(jìn)行加密,得到加密后的第一圖片;
向所述用戶終端發(fā)送所述加密后的第一圖片,以使得所述用戶終端對(duì)所述加密后的第一圖片進(jìn)行解密,得到所述第一圖片,并在所述目標(biāo)flash文件中對(duì)所述第一圖片進(jìn)行顯示。
進(jìn)一步的,所述對(duì)所述第一圖片進(jìn)行加密,得到加密后的第一圖片的步驟,包括:
計(jì)算所述第一圖片名字對(duì)應(yīng)的md5值;
采用所述第一圖片名字對(duì)應(yīng)的md5值作為tea加密算法的第一key值,通過(guò)tea加密算法對(duì)所述第一圖片進(jìn)行加密,得到加密后的第一圖片。
進(jìn)一步的,在所述計(jì)算所述第一圖片名字對(duì)應(yīng)的md5值之前,所述方法包括:
編寫計(jì)算md5值得md5函數(shù)接口;
所述計(jì)算所述第一圖片名字對(duì)應(yīng)的md5值的步驟,包括:
調(diào)用所述md5函數(shù)接口計(jì)算所述第一圖片名字對(duì)應(yīng)的md5值。
進(jìn)一步的,所述方法還包括:
接收所述用戶終端發(fā)送的加載第二圖片的請(qǐng)求,所述第二圖片為保存在所述服務(wù)器中并被目標(biāo)flash文件調(diào)用的圖片,所述第二圖片與所述第一圖片不同;
對(duì)所述第二圖片進(jìn)行加密,得到加密后的第二圖片;
向所述用戶終端發(fā)送所述加密后的第二圖片,以使得所述用戶終端對(duì)所述加密后的第二圖片進(jìn)行解密,得到所述第二圖片,并在所述目標(biāo)flash文件中對(duì)所述第二圖片進(jìn)行顯示。
進(jìn)一步的,所述根據(jù)所述服請(qǐng)求后對(duì)所述第二圖片進(jìn)行加密,得到加密后的第二圖片的步驟,包括:
計(jì)算所述第二圖片名字對(duì)應(yīng)的md5值;
采用所述第二圖片名字對(duì)應(yīng)的md5值以作為tea加密算法的第二key值,通過(guò)tea加密算法對(duì)所述第二圖片進(jìn)行加密,得到加密后的第二圖片。
第二方面,本申請(qǐng)?zhí)峁┮环N在flash中對(duì)圖片資源進(jìn)行加密保護(hù)的裝置,應(yīng)用于服務(wù)器,該裝置包括:
接收單元,用于接收用戶終端發(fā)送的加載第一圖片的請(qǐng)求,所述第一圖片為保存在所述服務(wù)器中并被目標(biāo)flash文件調(diào)用的圖片;
加密單元,用于對(duì)所述第一圖片進(jìn)行加密,得到加密后的第一圖片;
發(fā)送單元,用于向所述用戶終端發(fā)送所述加密后的第一圖片,以使得所述用戶終端對(duì)所述加密后的第一圖片進(jìn)行解密,得到所述第一圖片,并在所述目標(biāo)flash文件中對(duì)所述第一圖片進(jìn)行顯示。
進(jìn)一步的,所述加密單元具體用于:
計(jì)算所述第一圖片名字對(duì)應(yīng)的md5值;
采用所述第一圖片名字對(duì)應(yīng)的md5值作為tea加密算法的第一key值,通過(guò)tea加密算法對(duì)所述第一圖片進(jìn)行加密,得到加密后的第一圖片。
進(jìn)一步的,所述裝置還包括:
編寫單元,用于在所述計(jì)算所述第一圖片名字對(duì)應(yīng)的md5值之前,編寫計(jì)算md5值得md5函數(shù)接口;
所述加密單元具體用于:
調(diào)用所述md5函數(shù)接口計(jì)算所述第一圖片名字對(duì)應(yīng)的md5值。
進(jìn)一步的,所述接收單元還用于接收所述用戶終端發(fā)送的加載第二圖片的請(qǐng)求,所述第二圖片為保存在所述服務(wù)器中并被目標(biāo)flash文件調(diào)用的圖片,所述第二圖片與所述第一圖片不同;
所述加密單元還用于對(duì)所述第二圖片進(jìn)行加密,得到加密后的第二圖片;
所述發(fā)送單元還用于向所述用戶終端發(fā)送所述加密后的第二圖片,以使得所述用戶終端對(duì)所述加密后的第二圖片進(jìn)行解密,得到所述第二圖片,并在所述目標(biāo)flash文件中對(duì)所述第二圖片進(jìn)行顯示。
進(jìn)一步的,所述加密單元具體還用于:
計(jì)算所述第二圖片名字對(duì)應(yīng)的md5值;
采用所述第二圖片名字對(duì)應(yīng)的md5值以作為tea加密算法的第二key值,通過(guò)tea加密算法對(duì)所述第二圖片進(jìn)行加密,得到加密后的第二圖片。
本發(fā)明實(shí)施例通過(guò)接收用戶終端發(fā)送的加載第一圖片的請(qǐng)求,對(duì)第一圖片進(jìn)行加密,得到加密后的第一圖片;向用戶終端發(fā)送加密后的第一圖片,以使得用戶終端對(duì)加密后的第一圖片進(jìn)行解密,得到第一圖片,并在目標(biāo)flash文件中對(duì)第一圖片進(jìn)行顯示。本發(fā)明實(shí)施例中由于服務(wù)器對(duì)用戶終端加載的圖片進(jìn)行了加密,只有在用戶終端進(jìn)行解密圖片資源才能正常顯示,其他時(shí)刻圖片資源都是加密存儲(chǔ),保障了圖片資源的傳輸以及使用時(shí)的安全性,提高h(yuǎn)ack獲取原始圖片資源的門檻,從而可以極大的加強(qiáng)圖片資源的保護(hù)。
附圖說(shuō)明
圖1是本發(fā)明實(shí)施例中服務(wù)器側(cè)在flash中對(duì)圖片資源進(jìn)行加密保護(hù)的方法的一個(gè)實(shí)施例示意圖;
圖2是圖1所示實(shí)施例中步驟s2的一個(gè)實(shí)施例示意圖;
圖3是在圖1所示實(shí)施例基礎(chǔ)上,在flash中對(duì)圖片資源進(jìn)行加密保護(hù)的方法的一個(gè)實(shí)施例示意圖;
圖4是本發(fā)明實(shí)施例中服務(wù)器側(cè)在flash中對(duì)圖片資源進(jìn)行加密保護(hù)的裝置的一個(gè)實(shí)施例示意圖;
圖5是本發(fā)明實(shí)施例中服務(wù)器側(cè)在flash中對(duì)圖片資源進(jìn)行加密保護(hù)的裝置的另一個(gè)實(shí)施例示意圖;
圖6是本發(fā)明實(shí)施例中用戶終端側(cè)在flash中對(duì)圖片資源進(jìn)行加密保護(hù)的方法的一個(gè)實(shí)施例示意圖;
圖7是本發(fā)明實(shí)施例中注冊(cè)編寫圖片資源加載完成的回調(diào)函數(shù)的一個(gè)實(shí)施例示意圖;
圖8是本發(fā)明實(shí)施例中用戶終端側(cè)在flash中對(duì)圖片資源進(jìn)行加密保護(hù)的方法的另一個(gè)實(shí)施例示意圖;
圖9是圖6所示實(shí)施例中步驟s63的一個(gè)實(shí)施例示意圖;
圖10是圖6所示實(shí)施例中步驟s64的一個(gè)實(shí)施例示意圖;
圖11是本發(fā)明實(shí)施例中用戶終端側(cè)在flash中對(duì)圖片資源進(jìn)行加密保護(hù)的裝置的一個(gè)實(shí)施例示意圖;
圖12是本發(fā)明實(shí)施例中用戶終端側(cè)在flash中對(duì)圖片資源進(jìn)行加密保護(hù)的裝置的另一個(gè)實(shí)施例示意圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
本發(fā)明的說(shuō)明書和權(quán)利要求書及上述附圖中的術(shù)語(yǔ)“第一”、“第二”等(如果存在)是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的實(shí)施例能夠以除了在這里圖示或描述的內(nèi)容以外的順序?qū)嵤?。此外,術(shù)語(yǔ)“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過(guò)程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過(guò)程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
本發(fā)明實(shí)施例中涉及用戶終端和服務(wù)器兩個(gè)硬件主體,用戶終端通過(guò)網(wǎng)絡(luò)與服務(wù)器進(jìn)行連接,本發(fā)明實(shí)施例中針對(duì)的是用戶終端flash中使用的圖片資源有從服務(wù)器獲取的場(chǎng)景,對(duì)此種場(chǎng)景下圖片資源進(jìn)行加密保護(hù)。
下面介紹本發(fā)明實(shí)施例中服務(wù)器側(cè)在flash中對(duì)圖片資源進(jìn)行加密保護(hù)的方法,該方法應(yīng)用于在flash中對(duì)圖片資源進(jìn)行加密保護(hù)的裝置,該裝置應(yīng)用于服務(wù)器。
請(qǐng)參閱圖1,本發(fā)明實(shí)施例中在flash中對(duì)圖片資源進(jìn)行加密保護(hù)的方法的一個(gè)實(shí)施例包括:
s1、接收用戶終端發(fā)送的加載第一圖片的請(qǐng)求;
其中,該第一圖片為保存在服務(wù)器中并被目標(biāo)flash文件調(diào)用的圖片。
s2、對(duì)第一圖片進(jìn)行加密,得到加密后的第一圖片;
s3、向用戶終端發(fā)送所述加密后的第一圖片,以使得用戶終端對(duì)所述加密后的第一圖片進(jìn)行解密,得到第一圖片,并在目標(biāo)flash文件中對(duì)第一圖片進(jìn)行顯示。
本發(fā)明實(shí)施例通過(guò)接收用戶終端發(fā)送的加載第一圖片的請(qǐng)求,對(duì)第一圖片進(jìn)行加密,得到加密后的第一圖片;向用戶終端發(fā)送加密后的第一圖片,以使得用戶終端對(duì)加密后的第一圖片進(jìn)行解密,得到第一圖片,并在目標(biāo)flash文件中對(duì)第一圖片進(jìn)行顯示。本發(fā)明實(shí)施例中由于服務(wù)器對(duì)用戶終端加載的圖片進(jìn)行了加密,只有在用戶終端進(jìn)行解密圖片資源才能正常顯示,其他時(shí)刻圖片資源都是加密存儲(chǔ),保障了圖片資源的傳輸以及使用時(shí)的安全性,提高h(yuǎn)ack獲取原始圖片資源的門檻,從而可以極大的加強(qiáng)圖片資源的保護(hù)。
如圖2所示,在圖1所示實(shí)施例中,步驟s2可以進(jìn)一步包括:
s21、計(jì)算第一圖片名字對(duì)應(yīng)的md5值;
本實(shí)施例中,在所述計(jì)算所述第一圖片名字對(duì)應(yīng)的md5值之前,該方法包括:編寫計(jì)算md5值得md5函數(shù)接口;
具體編寫md5函數(shù)的接口如下:
voidmd5create(char*input,intinput_len,char*md5result);
其中,參數(shù)char*input為輸入需要計(jì)算md5的數(shù)據(jù);參數(shù)intinput_len為輸入需要校驗(yàn)數(shù)據(jù)的長(zhǎng)度;參數(shù)char*md5result為計(jì)算的md5結(jié)果數(shù)據(jù)。
通過(guò)這個(gè)步驟就編寫了一個(gè)md5函數(shù)接口供后續(xù)步驟調(diào)用此函數(shù)接口算法來(lái)計(jì)算整個(gè)第一圖片名字對(duì)應(yīng)的md5值。
此時(shí),所述計(jì)算所述第一圖片名字對(duì)應(yīng)的md5值的步驟,包括:
調(diào)用所述md5函數(shù)接口計(jì)算所述第一圖片名字對(duì)應(yīng)的md5值。
s22、采用第一圖片名字對(duì)應(yīng)的md5值作為tea加密算法的第一key值,通過(guò)tea加密算法對(duì)第一圖片進(jìn)行加密,得到加密后的第一圖片。
下面以一具體示例描述該步驟具體的實(shí)現(xiàn)方法,具體如下:
對(duì)于第一圖片xxx.png,其中xxx.png則是一張png的圖片。
通過(guò)md5值以及預(yù)先設(shè)定的第一key值,通過(guò)tea加密算法對(duì)第一圖片進(jìn)行加密如下:
key=md5.create(“xxx.png”);
調(diào)用md5接口來(lái)計(jì)算字符串“xxx.png”的md5值,然后調(diào)用tea.encrypt(key,xxx.png)來(lái)對(duì)圖片進(jìn)行加密;
其中,tea.encrypt則是tea加密算法的接口;key則是tea加密算法的key值;xxx.png則是png的圖片內(nèi)容,加密后同樣也存儲(chǔ)在xxx.png中。
通過(guò)上述計(jì)算后,最終生成的第一圖片xxx.png其圖片內(nèi)容則是加密過(guò)的。
進(jìn)一步的,一個(gè)flash文件可能同時(shí)在一個(gè)服務(wù)器中加載多張圖片,此時(shí),為了進(jìn)一步的加強(qiáng)加密算法的安全性,對(duì)每個(gè)圖片資源都使用不同的key來(lái)加密該圖片,每個(gè)圖片資源的key則是通過(guò)計(jì)算其圖片資源的文件名的md5(為計(jì)算機(jī)安全領(lǐng)域廣泛使用的一種散列函數(shù))值來(lái)作為key值。由于每個(gè)文件名的名字不同所以可以使得每個(gè)圖片資源加密使用的key是不一樣的。因此,如圖3所示,本發(fā)明實(shí)施例中方法還可以進(jìn)一步包括:
s4、接收用戶終端發(fā)送的加載第二圖片的請(qǐng)求;
其中,第二圖片為保存在所述服務(wù)器中并被目標(biāo)flash文件調(diào)用的圖片,所述第二圖片與所述第一圖片不同。
s5、對(duì)第二圖片進(jìn)行加密,得到加密后的第二圖片;
s6、向用戶終端發(fā)送加密后的第二圖片,以使得用戶終端對(duì)加密后的第二圖片進(jìn)行解密,得到第二圖片,并在目標(biāo)flash文件中對(duì)第二圖片進(jìn)行顯示。
其中,上述根據(jù)所述服請(qǐng)求后對(duì)所述第二圖片進(jìn)行加密,得到加密后的第二圖片;
計(jì)算所述第二圖片名字對(duì)應(yīng)的md5值;
采用所述第二圖片名字對(duì)應(yīng)的md5值以作為tea加密算法的第二key值,通過(guò)tea加密算法對(duì)所述第二圖片進(jìn)行加密,得到加密后的第二圖片。
上述步驟s4~s6中的具體實(shí)現(xiàn)方式與上述步驟s1~s3類似,僅第一圖片和第二圖片不同,因此它們對(duì)應(yīng)的第二key值與上述第一key值也不同,其他可參考上述實(shí)施例,具體實(shí)施步驟此處不再贅述。
下面介紹本發(fā)明實(shí)施例中服務(wù)器側(cè)在flash中對(duì)圖片資源進(jìn)行加密保護(hù)的裝置,該裝置應(yīng)用于服務(wù)器,如圖4所示,該裝置包括:
接收單元401,用于接收用戶終端發(fā)送的加載第一圖片的請(qǐng)求,所述第一圖片為保存在所述服務(wù)器中并被目標(biāo)flash文件調(diào)用的圖片;
加密單元402,用于對(duì)所述第一圖片進(jìn)行加密,得到加密后的第一圖片;
發(fā)送單元403,用于向所述用戶終端發(fā)送所述加密后的第一圖片,以使得所述用戶終端對(duì)所述加密后的第一圖片進(jìn)行解密,得到所述第一圖片,并在所述目標(biāo)flash文件中對(duì)所述第一圖片進(jìn)行顯示。
進(jìn)一步的,所述加密單元402具體用于:
計(jì)算所述第一圖片名字對(duì)應(yīng)的md5值;
采用所述第一圖片名字對(duì)應(yīng)的md5值作為tea加密算法的第一key值,通過(guò)tea加密算法對(duì)所述第一圖片進(jìn)行加密,得到加密后的第一圖片。
進(jìn)一步的,如圖5所示,所述裝置還包括:
編寫單元404,用于在所述計(jì)算所述第一圖片名字對(duì)應(yīng)的md5值之前,編寫計(jì)算md5值得md5函數(shù)接口;
所述加密單元402具體用于:
調(diào)用所述md5函數(shù)接口計(jì)算所述第一圖片名字對(duì)應(yīng)的md5值。
進(jìn)一步的,所述接收單元401還用于接收所述用戶終端發(fā)送的加載第二圖片的請(qǐng)求,所述第二圖片為保存在所述服務(wù)器中并被目標(biāo)flash文件調(diào)用的圖片,所述第二圖片與所述第一圖片不同;
所述加密單元402還用于對(duì)所述第二圖片進(jìn)行加密,得到加密后的第二圖片;
所述發(fā)送單元403還用于向所述用戶終端發(fā)送所述加密后的第二圖片,以使得所述用戶終端對(duì)所述加密后的第二圖片進(jìn)行解密,得到所述第二圖片,并在所述目標(biāo)flash文件中對(duì)所述第二圖片進(jìn)行顯示。
進(jìn)一步的,所述加密單元402具體還用于:
計(jì)算所述第二圖片名字對(duì)應(yīng)的md5值;
采用所述第二圖片名字對(duì)應(yīng)的md5值以作為tea加密算法的第二key值,通過(guò)tea加密算法對(duì)所述第二圖片進(jìn)行加密,得到加密后的第二圖片。
下面介紹本發(fā)明實(shí)施例中用戶終端側(cè)在flash中對(duì)圖片資源進(jìn)行加密保護(hù)的方法,該方法應(yīng)用于在flash中對(duì)圖片資源進(jìn)行加密保護(hù)的裝置,該裝置位于用戶終端,該用戶終端可以是手機(jī)、平板、個(gè)人電腦等。
請(qǐng)參閱圖6,本發(fā)明實(shí)施例中在flash中對(duì)圖片資源進(jìn)行加密保護(hù)的方法一個(gè)實(shí)施例包括:
s61、向服務(wù)器發(fā)送加載第一圖片的請(qǐng)求,以使得所述服務(wù)器在收到所述請(qǐng)求后對(duì)第一圖片進(jìn)行加密;
本實(shí)施例中,該第一圖片為保存在所述服務(wù)器中并被目標(biāo)flash文件調(diào)用的圖片,服務(wù)器對(duì)第一圖片進(jìn)行加密可以采用tea加密算法。
s62、從服務(wù)器下載加密后的第一圖片,并在目標(biāo)flash文件中加載所述加密后的第一圖片;
s63、對(duì)加密后的第一圖片進(jìn)行解密,得到第一圖片;
s64、在目標(biāo)flash文件中對(duì)第一圖片進(jìn)行顯示。
本發(fā)明實(shí)施例通過(guò)向服務(wù)器發(fā)送加載第一圖片的請(qǐng)求;從服務(wù)器下載加密后的第一圖片,并在目標(biāo)flash文件中加載加密后的第一圖片,對(duì)加密后的第一圖片進(jìn)行解密,得到第一圖片;在目標(biāo)flash文件中對(duì)第一圖片進(jìn)行顯示。本發(fā)明實(shí)施例中由于從服務(wù)器加載的是加密的圖片,只有在最終進(jìn)行顯示的時(shí)候圖片資源才是解密的,其他時(shí)刻圖片資源都是加密存儲(chǔ),保障了圖片資源的傳輸以及使用時(shí)的安全性,提高h(yuǎn)ack獲取原始圖片資源的門檻,從而可以極大的加強(qiáng)圖片資源的保護(hù)。
本發(fā)明實(shí)施例中,服務(wù)器對(duì)第一圖片采用tea加密算法進(jìn)行加密的具體的實(shí)現(xiàn)方法可以如下:
對(duì)于第一圖片xxx.png其中xxx.png則是一張png的圖片。
key=md5.create(“xxx.png”);
調(diào)用md5接口來(lái)計(jì)算字符串“xxx.png”的md5值。調(diào)用tea.encrypt(key,xxx.png)來(lái)對(duì)圖片進(jìn)行加密;tea.encrypt則是tea加密算法的接口。
其中key則是tea加密算法的key值,xxx.png則是第一圖片內(nèi)容,加密后同樣也存儲(chǔ)在xxx.png中。通過(guò)上述計(jì)算后,最終生成的xxx.png圖片內(nèi)容則是加密過(guò)的,本發(fā)明實(shí)施例中,對(duì)flash需要加載的所有圖片資源均可以使用上述方法加密。即可以通過(guò)這個(gè)步驟就實(shí)現(xiàn)對(duì)服務(wù)器上所有的圖片資源使用tea加密算法來(lái)進(jìn)行加密。
進(jìn)一步的,在步驟s62之前,本發(fā)明實(shí)施例中方法還可以包括:
(1)定義一個(gè)flash文件加載實(shí)例;
一般的,flash文件中加載圖片資源的代碼都是由actionscript編寫的,因此,本實(shí)施例中,可以首先定義一個(gè)actionscript的loader實(shí)例,在actionscript中提供了一個(gè)loader類用來(lái)加載png圖片資源文件。因此,定義一個(gè)actionscript的loader實(shí)例具體實(shí)現(xiàn)方式可以如下:
varpngloader:loader=newloader();
(2)注冊(cè)編寫圖片資源加載完成的回調(diào)函數(shù);
其中,如圖7所示,步驟(2)又可以進(jìn)一步包括:
s621、注冊(cè)圖片資源加載完成的回調(diào)函數(shù);
在actionscript中提供了一個(gè)loader實(shí)例的對(duì)象,其中l(wèi)oader對(duì)象有一個(gè)contentloadinfo的屬性,使用該屬性來(lái)注冊(cè)事件的回調(diào)函數(shù)(例如回調(diào)函數(shù)pngloadcompletehandler),當(dāng)loader加載完成一個(gè)圖片文件后,會(huì)回調(diào)這個(gè)注冊(cè)的事件函數(shù),以通知圖片文件已經(jīng)加載完成。
在loader的contentloadinfo屬性中提供了一個(gè)addeventlistener接口用來(lái)注冊(cè)事件。該接口具體原型如下:
其中第一個(gè)參數(shù)type:string用來(lái)表示注冊(cè)的事件類型,對(duì)應(yīng)于本實(shí)施例則是event.complete,表示注冊(cè)flash文件(例如swf文件)加載完成事件。其中第二個(gè)參數(shù)listener:function用來(lái)表示注冊(cè)的完成事件完成后的回調(diào)函數(shù),用于觸發(fā)回調(diào)函數(shù)執(zhí)行。其中第三個(gè)參數(shù)priority:int用于標(biāo)示事件的優(yōu)先級(jí),使用默認(rèn)值0。其中第四個(gè)參數(shù)useweakreference:boolean指定回調(diào)函數(shù)是弱應(yīng)用還是強(qiáng)引用,使用默認(rèn)值false。
s622、編寫圖片資源加載完成的回調(diào)函數(shù),以檢測(cè)目標(biāo)flash文件中加密后的第一圖片是否加載完成,并在加載完成時(shí)執(zhí)行對(duì)加密后的第一圖片進(jìn)行解密的步驟。
編寫回調(diào)函數(shù)pngloadcompletehandler,此函數(shù)即是上面調(diào)用的注冊(cè)完成事件填入的回調(diào)函數(shù),該回調(diào)函數(shù)用于檢測(cè)目標(biāo)flash文件中加密后的第一圖片是否加載完成,并在加載完成時(shí)執(zhí)行對(duì)加密后的第一圖片進(jìn)行解密的步驟,即步驟s63。
(3)、創(chuàng)建請(qǐng)求所述第一圖片的接口;
actionscript提供接口用來(lái)從網(wǎng)絡(luò)或者本地請(qǐng)求該第一圖片,具體接口如下:
urlrequest(url:string=null)
其中參數(shù)url:string標(biāo)示傳入該第一圖片的url地址或者本地路徑。
此時(shí),如圖8所示,所述步驟s61具體可以包括:
s61’、調(diào)用接口向服務(wù)器發(fā)送加載第一圖片的請(qǐng)求,以使得服務(wù)器在收到所述請(qǐng)求后對(duì)第一圖片進(jìn)行加密。
此時(shí),步驟s63具體可以包括:
s63’、在回調(diào)函數(shù)中對(duì)加密后的第一圖片進(jìn)行解密,得到第一圖片。
進(jìn)一步的,所述加密后的第一圖片為tea加密算法加密的第一圖片,所述tea加密算法采用第一圖片對(duì)應(yīng)名稱字符的md5值作為key值;
此時(shí),如圖9所示,步驟s63具體可以包括:
s631、調(diào)用md5接口計(jì)算第一圖片對(duì)應(yīng)名稱字符的md5值;
s632、采用第一圖片對(duì)應(yīng)名稱字符的md5值作為tea解密算法的key值,調(diào)用tea解密算法的接口對(duì)加密后的第一圖片進(jìn)行解密,得到第一圖片。
當(dāng)?shù)谝粓D片從服務(wù)器請(qǐng)求下載完成后,加載到了內(nèi)存中后會(huì)調(diào)用步驟s6中的回調(diào)函數(shù)pngloadcompletehandler來(lái)通知數(shù)據(jù)已經(jīng)加載完成。同時(shí)在回調(diào)函數(shù)中有一個(gè)參數(shù)的屬性用來(lái)傳回加載的圖片數(shù)據(jù),具體則是evt.target.content.bitmapdata,其中bitmapdata則儲(chǔ)存著加載的加密的圖片數(shù)據(jù)。然后可以使用tea算法來(lái)對(duì)數(shù)據(jù)進(jìn)行解密操作,具體實(shí)現(xiàn)方式如下:
例如對(duì)于第一圖片xxx.png其中xxx.png則是一張png的圖片。
key=md5.create(“xxx.png”);
調(diào)用md5接口來(lái)計(jì)算字符串“xxx.png”的md5值,然后調(diào)用tea.decrypt(key,evt.target.content.bitmapdata)來(lái)對(duì)圖片進(jìn)行解密。其中,tea.decrypt則是tea解密算法的接口;key則是tea解密算法的key值,與第一圖片進(jìn)行tea加密時(shí)的key值相同;evt.target.content.bitmapdata則是從服務(wù)器下載并加載的加密后的png第一圖片內(nèi)容,解密后同樣也存儲(chǔ)在evt.target.content.bitmapdata中。
至此,通過(guò)這個(gè)步驟就實(shí)現(xiàn)在對(duì)加載的png圖片調(diào)用tea算法來(lái)對(duì)圖片進(jìn)行解密出原始的第一圖片資源。
進(jìn)一步的,如圖10所示,上述步驟s64可以進(jìn)一步包括:
s641、定義一個(gè)flash的圖片資源對(duì)象;
其中,該圖片資源對(duì)象中包括所述第一圖片的數(shù)據(jù);
當(dāng)對(duì)加密后的第一圖片進(jìn)行解密后,則可以直接將其加載到flash舞臺(tái)中進(jìn)行顯示。具體實(shí)現(xiàn)如下:
首先需要定義一個(gè)flash的圖片資源對(duì)象,該圖片資源對(duì)象中包括所述第一圖片的數(shù)據(jù),具體實(shí)現(xiàn)方式如下:
varimg:bitmap=newbitmap(evt.target.content.bitmapdata);
其中img則是該圖片對(duì)象,參數(shù)evt.target.content.bitmapdata則是步驟s32中解密后的圖片數(shù)據(jù)。
s642、將目標(biāo)flash文件導(dǎo)入flash舞臺(tái),調(diào)用flash舞臺(tái)接口將所述圖片資源對(duì)象加載到flash舞臺(tái)中,以顯示所述第一圖片。
在定義一個(gè)flash的圖片資源對(duì)象,然后將目標(biāo)flash文件導(dǎo)入flash舞臺(tái),調(diào)用flash舞臺(tái)的接口來(lái)將圖片加入到舞臺(tái)中進(jìn)行顯示。
stage.addchild(img);
至此,通過(guò)這個(gè)步驟就實(shí)現(xiàn)了對(duì)解密后的第一圖片進(jìn)行顯示到flash舞臺(tái)中。
tea加密算法在加密數(shù)據(jù)時(shí)是需要使用一個(gè)key來(lái)做為加密算法使用的key,解密時(shí)也需要使用同樣一個(gè)key才能解密出正確的數(shù)據(jù)。一個(gè)flash文件可能同時(shí)在一個(gè)服務(wù)器中加載多張圖片,此時(shí),本發(fā)明實(shí)施例中為了進(jìn)一步的加強(qiáng)加密算法的安全性,對(duì)每個(gè)圖片資源都可以使用不同的key來(lái)加密該圖片,進(jìn)一步的,每個(gè)圖片資源的key則是通過(guò)計(jì)算其圖片資源的文件名的哈希值來(lái)作為key值,例如md5(為計(jì)算機(jī)安全領(lǐng)域廣泛使用的一種散列函數(shù))值來(lái)作為key值,由于每個(gè)文件名的名字不同所以可以使得每個(gè)圖片資源加密使用的key是不一樣的。因此,本發(fā)明實(shí)施例中方法還可以進(jìn)一步包括:
向服務(wù)器發(fā)送加載第二圖片的請(qǐng)求,以使得所述服務(wù)器在收到所述請(qǐng)求后對(duì)所述第二圖片進(jìn)行加密,所述第二圖片為保存在所述服務(wù)器中并被目標(biāo)flash文件調(diào)用的圖片;
從所述服務(wù)器下載加密后的第二圖片,并在所述目標(biāo)flash文件中加載所述加密后的第二圖片;
對(duì)所述加密后的第二圖片進(jìn)行解密,得到所述第二圖片;
在所述目標(biāo)flash文件中對(duì)所述第二圖片進(jìn)行顯示。
本發(fā)明實(shí)施例中,對(duì)上述第二圖片的處理方式與上述實(shí)施例中對(duì)第一圖片的處理方式類似,此處不再贅述。
下面介紹本發(fā)明實(shí)施例中在flash中對(duì)圖片資源進(jìn)行加密保護(hù)的裝置的實(shí)施例,該裝置同樣應(yīng)用于用戶終端。
請(qǐng)參閱圖11,為本發(fā)明實(shí)施例中在flash中對(duì)圖片資源進(jìn)行加密保護(hù)的裝置的一個(gè)實(shí)施例示意圖,該裝置包括:
請(qǐng)求單元601,用于向服務(wù)器發(fā)送加載第一圖片的請(qǐng)求,以使得所述服務(wù)器在收到所述請(qǐng)求后對(duì)所述第一圖片進(jìn)行加密;
加載單元602,用于從所述服務(wù)器下載加密后的第一圖片,并在所述目標(biāo)flash文件中加載所述加密后的第一圖片,所述第一圖片為保存在所述服務(wù)器中并被目標(biāo)flash文件調(diào)用的圖片;
解密單元603,對(duì)所述加密后的第一圖片進(jìn)行解密,得到所述第一圖片;
顯示單元604,用于在目標(biāo)flash文件中對(duì)所述第一圖片進(jìn)行顯示。
進(jìn)一步的,如圖12所示,所述裝置還包括:
定義單元605,用于從所述服務(wù)器下載加密后的第一圖片之前,定義一個(gè)flash文件加載實(shí)例;
注冊(cè)編寫單元606,用于注冊(cè)編寫圖片資源加載完成的回調(diào)函數(shù);
創(chuàng)建單元607,用于創(chuàng)建請(qǐng)求所述第一圖片的接口;
所述請(qǐng)求單元601具體用于:
調(diào)用所述接口向服務(wù)器發(fā)送加載所述第一圖片的請(qǐng)求;
所述解密單元603具體用于:
在所述回調(diào)函數(shù)中對(duì)所述加密后的第一圖片進(jìn)行解密,得到所述第一圖片。
進(jìn)一步的,所述注冊(cè)編寫單元606具體用于:
注冊(cè)圖片資源加載完成的回調(diào)函數(shù);
編寫所述圖片資源加載完成的回調(diào)函數(shù),以檢測(cè)所述目標(biāo)flash文件中所述加密后的第一圖片是否加載完成,并在加載完成時(shí)執(zhí)行對(duì)所述加密后的第一圖片進(jìn)行解密的步驟。
進(jìn)一步的,所述加密后的第一圖片為tea加密算法加密的第一圖片,所述tea加密算法采用第一圖片對(duì)應(yīng)名稱字符的md5值作為key值;
所述解密單元603具體用于:
調(diào)用md5接口計(jì)算所述第一圖片對(duì)應(yīng)名稱字符的md5值;
采用所述第一圖片對(duì)應(yīng)名稱字符的md5值作為tea解密算法的key值,調(diào)用tea解密算法的接口對(duì)所述加密后的第一圖片進(jìn)行解密,得到所述第一圖片。
進(jìn)一步的,所述顯示單元604具體用于:
定義一個(gè)flash的圖片資源對(duì)象,所述圖片資源對(duì)象中包括所述第一圖片的數(shù)據(jù);
將所述目標(biāo)flash文件導(dǎo)入flash舞臺(tái),調(diào)用flash舞臺(tái)接口將所述圖片資源對(duì)象加載到flash舞臺(tái)中,以顯示所述第一圖片。
本發(fā)明實(shí)施例中用戶終端側(cè)的在flash中對(duì)圖片資源進(jìn)行加密保護(hù)的方法和服務(wù)器側(cè)在flash中對(duì)圖片資源進(jìn)行加密保護(hù)的方法可相互參照,在一側(cè)未描述到的部分可參照另一側(cè)方法。同理用戶終端側(cè)的在flash中對(duì)圖片資源進(jìn)行加密保護(hù)的裝置和服務(wù)器側(cè)在flash中對(duì)圖片資源進(jìn)行加密保護(hù)的裝置也可以相互參照,此處不做限定。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng),裝置和單元的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤、移動(dòng)硬盤、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述,以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。