本發(fā)明屬于彈幕信息處理技術(shù)領(lǐng)域,尤其涉及一種保護(hù)彈幕信息的方法及客戶端。
背景技術(shù):
目前,隨著網(wǎng)絡(luò)通信技術(shù)的進(jìn)步和寬帶網(wǎng)絡(luò)的提速,網(wǎng)絡(luò)直播得到了越來越多的發(fā)展和應(yīng)用。
同時隨著彈幕的發(fā)展,彈幕信息使得直播具有更好的互動和趣味性。而在直播平臺中為了對用戶分級增加平臺的收入,會通過讓用戶充值來升級成高級用戶,從而只讓高級用戶享受到某些特殊功能,比如只讓高級用戶看到某些特殊的彈幕信息,但是現(xiàn)有的彈幕系統(tǒng)發(fā)送的彈幕信息是對所有用戶可見,導(dǎo)致普通用戶也可以輕易獲取到這些特殊彈幕信息,進(jìn)而導(dǎo)致彈幕直播平臺收益降低。
基于此,本發(fā)明提供一種護(hù)彈幕信息的方法及客戶端,以解決現(xiàn)有技術(shù)中的上述問題。
技術(shù)實(shí)現(xiàn)要素:
針對現(xiàn)有技術(shù)存在的問題,本發(fā)明實(shí)施例提供了一種保護(hù)彈幕信息的方法及客戶端,用于解決現(xiàn)有服務(wù)器發(fā)送的彈幕信息是對所有用戶可見,導(dǎo)致普通用戶也可以輕易獲取到某些特殊彈幕信息,進(jìn)而導(dǎo)致高級用戶的數(shù)量減少,造成彈幕直播平臺收益降低的技術(shù)問題。
本發(fā)明提供一種保護(hù)彈幕信息的方法,所述方法包括:
客戶端接收彈幕信息;
判斷所述彈幕信息是否是特殊彈幕信息,若所述彈幕信息是所述特殊彈幕信息時,接收服務(wù)器發(fā)送的密鑰信息;
基于所述密鑰信息利用解密算法對所述彈幕信息進(jìn)行解密,獲取所述彈幕信息的明文信息;其中,所述彈幕信息包括:文字信息、圖像信息或音頻信息。
上述方案中,所述判斷所述彈幕信息是否是特殊彈幕信息,包括:
獲取所述彈幕信息的加密標(biāo)記位;
判斷所述加密標(biāo)記位是否為特殊彈幕信息的第一加密標(biāo)記位,若所述加密標(biāo)記位是所述第一加密標(biāo)記位,則確定所述彈幕信息為所述特殊彈幕信息。
上述方案中,所述利用解密算法對所述彈幕信息進(jìn)行解密,包括:
利用解密算法tea.decrypt(encryptchatmessage,key)對所述彈幕信息進(jìn)行解密;其中,所述chatmessage為所述彈幕信息,所述key為所述密鑰信息。
上述方案中,所述利用解密算法對所述彈幕信息進(jìn)行解密,還包括:
根據(jù)所述密鑰信息在所述特殊彈幕信息的密文信息中提取出附加信息;
將所述密鑰信息與所述附加信息進(jìn)行組合形成一組合密鑰;
利用所述組合密鑰將所述密文信息轉(zhuǎn)換成相應(yīng)的明文信息。
上述方案中,所述根據(jù)所述密鑰信息在所述密文信息中提取出附加信息,包括:
基于所述密鑰信息確定出所述附加信息在所述密文信息中的插入位置;
在所述密文信息的所述插入位置提取出所述附加信息。
上述方案中,所述基于所述密鑰信息確定出所述附加信息在所述密文信息中的插入位置,包括:
確定所述密鑰信息的參照位;
獲取所述密鑰信息參照位的字符;
按照預(yù)設(shè)的第一轉(zhuǎn)換規(guī)則將所述字符轉(zhuǎn)換為一數(shù)值;
基于所述數(shù)值確定出所述插入位置。
上述方案中,所述根據(jù)所述密鑰信息在所述密文信息中提取出附加信息,還包括:
確定所述密鑰信息的長度信息;
基于所述密鑰信息的長度信息確定出所述附加信息的長度信息;
在所述密文信息中基于所述長度信息提取出所述附加信息。
上述方案中,所述利用解密算法對所述彈幕信息進(jìn)行解密,還包括:
接收圖像信息,從所述圖像信息中讀取至少一組顏色值,所述圖像為對明文信息進(jìn)行加密的加密結(jié)果;
根據(jù)第二轉(zhuǎn)換規(guī)則將所述至少一組顏色值轉(zhuǎn)換為數(shù)字信息;
將所述數(shù)字信息轉(zhuǎn)換為字符編碼;
將所述字符編碼轉(zhuǎn)換所述明文信息。
上述方案中,所述利用解密算法對所述彈幕信息進(jìn)行解密,還包括:
接收音頻信息,從所述音頻信息中讀取至少一種音頻碼,所述音頻為對明文信息進(jìn)行加密的加密結(jié)果;
根據(jù)第三轉(zhuǎn)換規(guī)則將所述至少一組音頻碼轉(zhuǎn)換為明文信息。
本發(fā)明還提供一種客戶端,所述客戶端包括:
接收單元,用于接收彈幕信息;
判斷單元,用于判斷所述彈幕信息是否是特殊彈幕信息,若所述彈幕信息是所述特殊彈幕信息時,接收服務(wù)器發(fā)送的密鑰信息;
解密單元,用于基于所述密鑰信息利用解密算法對所述彈幕信息進(jìn)行解密,獲取所述彈幕信息的明文信息;其中,所述彈幕信息包括:文字信息、圖像信息或音頻信息。
本發(fā)明提供了一種保護(hù)彈幕信息的方法及客戶端,所述方法包括:客戶端接收彈幕信息;判斷所述彈幕信息是否是特殊彈幕信息,若所述彈幕信息是所述特殊彈幕信息時,接收密鑰信息;基于所述密鑰信息利用解密算法對所述彈幕信息進(jìn)行解密,獲取所述彈幕信息的明文信息;其中,所述彈幕信息包括:文字信息、圖像信息或音頻信息。如此,即使普通用戶對應(yīng)的客戶端接收到特殊彈幕信息,也會因接收不到密鑰信息不能對特殊彈幕信息進(jìn)行解密,從而也獲取不到特殊彈幕信息的明文信息;這樣就可以進(jìn)一步增加高級用戶的數(shù)量,從而增加了直播平臺的收益。
附圖說明
圖1為本發(fā)明實(shí)施例一提供的保護(hù)彈幕信息的方法流程示意圖;
圖2為本發(fā)明實(shí)施例二提供的客戶端的整體結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了解決現(xiàn)有服務(wù)器發(fā)送的彈幕信息是對所有用戶可見,導(dǎo)致普通用戶也可以輕易獲取到某些特殊彈幕信息,進(jìn)而導(dǎo)致高級用戶的數(shù)量減少,造成彈幕直播平臺收益降低的技術(shù)問題,本發(fā)明提供了一種客戶端接收彈幕信息;判斷所述彈幕信息是否是特殊彈幕信息,若所述彈幕信息是所述特殊彈幕信息時,接收密鑰信息;基于所述密鑰信息利用解密算法對所述彈幕信息進(jìn)行解密,獲取所述彈幕信息的明文信息;其中,所述彈幕信息包括:文字信息、圖像信息或音頻信息。
下面通過附圖及具體實(shí)施例對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)說明。
實(shí)施例一
本實(shí)施例提供一種保護(hù)彈幕信息的方法及客戶端,為了降低現(xiàn)有彈幕系統(tǒng)的改造成本,該方法是基于現(xiàn)有的彈幕系統(tǒng)進(jìn)行設(shè)計的,所述方法應(yīng)用于客戶端側(cè),如圖1所示,所述方法包括:
s101,客戶端接收彈幕信息。
本步驟中,客戶端在顯示彈幕信息之前,首先需要接收到彈幕信息,所述彈幕信息包括:普通彈幕信息及特殊彈幕信息;一般來說,所述特殊彈幕信息只想讓高級用戶看到,不想讓普通用戶看到。比如,所述彈幕信息包括:文字信息、圖像信息或音頻信息;所述特殊彈幕信息可以包括:優(yōu)惠信息、高級用戶之間的聊天信息等。
s102,判斷所述彈幕信息是否是特殊彈幕信息,若所述彈幕信息是所述特殊彈幕信息時,接收密鑰信息。
本步驟中,當(dāng)客戶端接收到彈幕信息后,判斷所述彈幕信息是否是特殊彈幕信息,若是普通彈幕信息直接就可以顯示,若是特殊彈幕信息,則還需要接收服務(wù)器下發(fā)的密鑰信息。當(dāng)然,本實(shí)施例中只有高級用戶的客戶端才能接收到密鑰信息,而對于普通用戶來說,服務(wù)器是不會對其下發(fā)密鑰信息的,因此即使普通用戶對應(yīng)的客戶端接收到特殊彈幕信息,也會因沒有密鑰信息不能對特殊彈幕信息進(jìn)行解密。這里,服務(wù)器是基于用戶標(biāo)記來區(qū)分高級用戶和普通用戶的,比如:所述高級用戶的用戶標(biāo)記可以為vip字段等。
所述判斷所述彈幕信息是否是特殊彈幕信息,包括:獲取所述彈幕信息的標(biāo)記位;判斷所述加密標(biāo)記位是否為特殊彈幕信息的第一標(biāo)記位,若所述加密標(biāo)記位是所述第一加密標(biāo)記位,則確定所述彈幕信息為所述特殊彈幕信息。這里,所述第一加密標(biāo)記位可以包括服務(wù)器與客戶端約定的字母、數(shù)字等,本實(shí)施例中的第一加密標(biāo)記位為數(shù)字“1”。所述第一加密標(biāo)記位可以位于特殊彈幕信息的首位字符后或末位字符后,或者可以是其他約定的字符后。
若所述加密標(biāo)記位是第二加密標(biāo)記位,則確定所述彈幕信息為所述普通彈幕信息,可以直接顯示。同樣的,所述第二加密標(biāo)記位可以包括服務(wù)器與客戶端約定的字母、數(shù)字等,本實(shí)施例中的第二加密標(biāo)記位為數(shù)字“0”。所述第二加密標(biāo)記位可以位于普通彈幕信息的首位字符后或末位字符后,或者可以是其他約定的字符后。
s103,基于所述密鑰信息利用解密算法對所述彈幕信息進(jìn)行解密,獲取所述彈幕信息的明文信息。
本步驟中,當(dāng)接收到密鑰信息后,可以基于所述密鑰信息利用解密算法對所述彈幕信息進(jìn)行解密,獲取所述彈幕信息的明文信息。
具體地,因服務(wù)器中的加密算法可能包括多種,比如:tea加密算法、aes加密算法及rsa加密算法;當(dāng)然,加密算法也可以是其他的一些加密算法。所述特殊彈幕信息也可以包括多種形式的信息,比如:圖片信息、文字信息、音頻信息、視頻信息等。
當(dāng)彈幕信息為文字信息且加密算法是tea加密算法時,基于所述密鑰信息利用解密算法對所述彈幕信息進(jìn)行解密,包括:
利用解密算法tea.decrypt(encryptchatmessage,key)對所述彈幕信息進(jìn)行解密;具體程序?qū)崿F(xiàn)如下:
chatmessage=tea.decrypt(encryptchatmessage,key);
其中,所述chatmessage為所述解密后的彈幕信息,所述key為接收到的密鑰信息;所述decrypt接口是tea算法的解密接口。
當(dāng)加密算法是aes加密算法時,基于所述密鑰信息利用解密算法對所述彈幕信息進(jìn)行解密,包括:
利用解密算法aes.decrypt(encryptchatmessage,key)對所述彈幕信息進(jìn)行解密;具體程序?qū)崿F(xiàn)如下:
chatmessage=aes.decrypt(encryptchatmessage,key);
其中,所述chatmessage為所述解密后的彈幕信息,所述key為接收到的密鑰信息;此時所述decrypt接口是aes算法的解密接口。
當(dāng)加密算法是rsa加密算法時,基于所述密鑰信息利用解密算法對所述彈幕信息進(jìn)行解密,包括:
利用解密算法rsa.decrypt(encryptchatmessage,key)對所述彈幕信息進(jìn)行解密;具體程序?qū)崿F(xiàn)如下:
chatmessage=rsa.decrypt(encryptchatmessage,key);
其中,所述chatmessage為所述解密后的彈幕信息,所述key為接收到的密鑰信息;此時所述decrypt接口是rsa算法的解密接口。
這里,當(dāng)加密算法為預(yù)設(shè)的其他加密算法時,基于所述密鑰信息利用解密算法對所述彈幕信息進(jìn)行解密,還包括:
當(dāng)接收到密鑰信息后,判斷出密鑰的長度信息,并根據(jù)所述密鑰在所述密文信息中提取出附加信息,具體包括:基于所述密鑰確定出所述附加信息在所述密文信息中的插入位置,根據(jù)密鑰的長度信息確定附加信息的長度信息;在所述密文信息的所述插入位置基于所述長度信息提取出所述附加信息。其中,所述附加信息的長度可以為密鑰長度的2~3倍,且附加信息的字符可以包括:數(shù)字或字母。
基于所述密鑰確定出所述附加信息在所述密文信息中的插入位置,包括:確定所述密鑰的參照位;獲取所述密鑰參照位的字符;按照預(yù)設(shè)的第一轉(zhuǎn)換規(guī)則將所述字符轉(zhuǎn)換為一數(shù)值;基于所述數(shù)值確定出所述插入位置。
其中,預(yù)設(shè)的第一轉(zhuǎn)換規(guī)則為將所述可以包括多種:比如將字符與十進(jìn)制數(shù)值對應(yīng)轉(zhuǎn)換,將字符與ascii碼值進(jìn)行對應(yīng)轉(zhuǎn)換。
當(dāng)將字符與ascii碼值進(jìn)行對應(yīng)轉(zhuǎn)換時,接收到密鑰后,然后獲取密鑰參照位的字符,確定所述字符對應(yīng)的十進(jìn)制ascii碼值,以此值作為參照值在密文中尋找附加信息字符所在的位置。尋找到該位置后,將附加信息字符從密文信息中提取出來。這里,所述密鑰的參照位可以為密鑰中的任一位,比如首位或末位;當(dāng)以密鑰的末位設(shè)置為密鑰的參照位,比如密鑰為12345,那么參照位的字符就是“5”,再獲取到“5”對應(yīng)的ascii碼為“53”,然后將附加信息從密文信息中的第53個字符之后的位置提取出即可。
將所述附加信息從密文信息中提取出之后,并判斷該密文字符末尾是否有相應(yīng)的文件類型,如果有,則新建一個該類型的文件以方便后期解密寫入。如果沒有,則默認(rèn)新建一個文檔文件來記錄解密數(shù)據(jù)。
然后,在得到密鑰字符串和附加信息的字符串后,將兩個字符串進(jìn)行拼接,形成一組合密鑰,并使用該組合密鑰將密文信息轉(zhuǎn)換為明文信息,這樣就可以將加密的特殊彈幕信息轉(zhuǎn)換為明文信息,然后將其顯示在客戶端的屏幕上。
這里,當(dāng)加密算法為預(yù)設(shè)的其他加密算法,且彈幕信息為圖像信息時,基于所述密鑰信息利用解密算法對所述彈幕信息進(jìn)行解密,還包括:
從圖像中讀取至少一組顏色值,所述圖像為對明文信息進(jìn)行加密的加密結(jié)果;根據(jù)第二轉(zhuǎn)換規(guī)則將所述至少一組顏色值轉(zhuǎn)換為數(shù)字信息;將所述數(shù)字信息轉(zhuǎn)換為字符編碼;將所述字符編碼轉(zhuǎn)換所述明文信息。
根據(jù)第二轉(zhuǎn)換規(guī)則將相所述至少一組顏色值轉(zhuǎn)換為數(shù)字信息,包括:
確定每種顏色對應(yīng)的最大階層,根據(jù)公式a=(b*c+g)*c+r確定所述數(shù)字信息的數(shù)值a;其中,所述每種顏色對應(yīng)的最大階層相同,所述r為紅色,所述g為綠色,所述b為藍(lán)色,所述c為所述每種顏色對應(yīng)的最大階層。
當(dāng)所述圖像中混淆有混淆色塊時,從所述圖像中讀取至少一組顏色值包括:接收混淆數(shù)值,根據(jù)所述混淆數(shù)值確定的隨機(jī)生成的混淆色塊的數(shù)量;基于混淆算法確定所述混淆色塊在所述圖像中的寫入位置;確定寫入所述顏色值的第一基準(zhǔn)點(diǎn);以所述第一基準(zhǔn)點(diǎn)為起始位置遍歷所述圖像,在遍歷過程中,基于所述混淆色塊的數(shù)量及在所述混淆色塊在所述圖像中的寫入位置跳過所述混淆色塊,讀取所述至少一組顏色值。
這里,當(dāng)加密算法為預(yù)設(shè)的其他加密算法,且彈幕信息為音頻信息時,基于所述密鑰信息利用解密算法對所述彈幕信息進(jìn)行解密,還包括:
接收音頻,從所述音頻中讀取至少一種音頻碼;根據(jù)第三轉(zhuǎn)換規(guī)則將所述至少一組音頻碼轉(zhuǎn)換為明文信息。
所述從音頻中讀取至少一種音頻碼,包括:讀取音頻數(shù)據(jù),獲取所述音頻的頻率隊(duì)列;遍歷所述頻率隊(duì)列,獲取第一頻率及第二頻率;將所述第一頻率轉(zhuǎn)換為第一音頻編碼,將所述第二頻率轉(zhuǎn)換為第二音頻編碼;根據(jù)所述第一音頻編碼及所述第二音頻編碼確定相應(yīng)的音頻編碼;將所述音頻編碼進(jìn)行組合獲取所述至少一組音頻碼。
所述讀取音頻數(shù)據(jù),獲取所述音頻的頻率隊(duì)列,包括:建立一音頻信息對象,在所述音頻信息對象中設(shè)置一采樣頻率;基于所述采樣頻率采集所述音頻數(shù)據(jù),并將所述音頻數(shù)據(jù)存儲至一數(shù)組中;遍歷所述數(shù)組,將所述數(shù)組中的每一項(xiàng)數(shù)據(jù)轉(zhuǎn)換為相應(yīng)的頻率,形成頻率隊(duì)列。
所述根據(jù)第三轉(zhuǎn)換規(guī)則將所述至少一組音頻碼轉(zhuǎn)換為明文信息包括;根據(jù)預(yù)設(shè)的提取規(guī)則,將所述音頻碼拆分為至少一組音頻編碼;確定每個數(shù)字對應(yīng)的音頻編碼;基于所述每個數(shù)字對應(yīng)的音頻編碼及每組音頻編碼,將所述音頻編碼轉(zhuǎn)換為至少一組數(shù)字信息;將所述至少一組數(shù)字信息轉(zhuǎn)換為字符編碼;將所述字符編碼轉(zhuǎn)換為所述明文信息。
在得到解密后的明文信息后,判斷所述明文信息的文件類型,如果是文字類的字符串則將該數(shù)據(jù)寫入到文檔文件中即可;如果是其他類型的特殊文件,比如:圖片、音頻及視頻,則使用base64字節(jié)編碼將字符串轉(zhuǎn)換為相應(yīng)的數(shù)據(jù),并寫入到之前創(chuàng)建的文件中,達(dá)到完整的解密過程。
這里,當(dāng)所述特殊彈幕信息為圖片、音頻及視頻時,由于特殊彈幕信息的明文信息有各種編碼的信息,比如:中文,英文或其他文字,因此將明文信息轉(zhuǎn)換為base64字節(jié)編碼后,則可以很好的將各國文字都可以轉(zhuǎn)為統(tǒng)一的編碼格式,防止出現(xiàn)亂碼,或者識別不到的情況,base64字節(jié)編碼要求把3個8位字節(jié)(3*8=24)轉(zhuǎn)化為4個6位的字節(jié)(4*6=24),之后在6位的前面補(bǔ)兩個0,形成8位一個字節(jié)的形式。如果剩下的字符不足3個字節(jié),則用0填充,輸出字符使用'=',因此編碼后輸出的文本末尾可能會出現(xiàn)1或2個'='。
實(shí)施例二
相應(yīng)于實(shí)施例一,本實(shí)施例還提供一種客戶端,如圖2所示,所述客戶端包括:接收單元21、判斷單元22及解密單元23;其中;
客戶端在顯示彈幕信息之前,接收單元21首先需要接收到彈幕信息,所述彈幕信息包括:普通彈幕信息及特殊彈幕信息;一般來說,所述特殊彈幕信息只想讓高級用戶看到,不想讓普通用戶看到。比如,所述特殊彈幕信息可以包括:優(yōu)惠信息、高級用戶之間的聊天信息等。
當(dāng)接收單元21接收到彈幕信息后,判斷單元22用于判斷所述彈幕信息是否是特殊彈幕信息,若是普通彈幕信息直接就可以顯示,若是特殊彈幕信息,所述接收單元21則還需要接收服務(wù)器下發(fā)的密鑰信息。當(dāng)然,本實(shí)施例中只有高級用戶的客戶端才能接收到密鑰信息,而對于普通用戶來說,服務(wù)器是不會對其下發(fā)密鑰信息的,因此即使普通用戶對應(yīng)的客戶端接收到特殊彈幕信息,也會因沒有密鑰信息不能對特殊彈幕信息進(jìn)行解密。這里,服務(wù)器是基于用戶標(biāo)記來區(qū)分高級用戶和普通用戶的,所述高級用戶的用戶標(biāo)記可以為vip字段等。
所述判斷單元22判斷所述彈幕信息是否是特殊彈幕信息,包括:獲取所述彈幕信息的標(biāo)記位;判斷所述加密標(biāo)記位是否為特殊彈幕信息的第一標(biāo)記位,若所述加密標(biāo)記位是所述第一加密標(biāo)記位,則確定所述彈幕信息為所述特殊彈幕信息。這里,所述第一加密標(biāo)記位可以包括服務(wù)器與客戶端約定的字母、數(shù)字等,本實(shí)施例中的第一加密標(biāo)記位為數(shù)字“1”。所述第一加密標(biāo)記位可以位于特殊彈幕信息的首位字符后或末位字符后,或者可以是其他約定的字符后。
若所述加密標(biāo)記位是第二加密標(biāo)記位,所述判斷單元22則確定所述彈幕信息為所述普通彈幕信息,可以直接顯示。同樣的,所述第二加密標(biāo)記位可以包括服務(wù)器與客戶端約定的字母、數(shù)字等,本實(shí)施例中的第二加密標(biāo)記位為數(shù)字“0”。所述第二加密標(biāo)記位可以位于普通彈幕信息的首位字符后或末位字符后,或者可以是其他約定的字符后。
當(dāng)接收單元21接收到密鑰信息后,所述解密單元23可以基于所述密鑰信息利用解密算法對所述彈幕信息進(jìn)行解密,獲取所述彈幕信息的明文信息。
具體地,因服務(wù)器中的加密算法可能包括多種,比如:tea加密算法、aes加密算法及rsa加密算法;當(dāng)然,加密算法也可以是其他的一些加密算法。所述特殊彈幕信息也可以包括多種形式的信息,比如:圖片信息、文字信息、音頻信息、視頻信息等。
當(dāng)加密算法是tea加密算法時,所述解密單元23基于所述密鑰信息利用解密算法對所述彈幕信息進(jìn)行解密,包括:
利用解密算法tea.decrypt(encryptchatmessage,key)對所述彈幕信息進(jìn)行解密;具體程序?qū)崿F(xiàn)如下:
chatmessage=tea.decrypt(encryptchatmessage,key);
其中,所述chatmessage為所述彈幕信息,所述key為接收到的密鑰信息;所述decrypt接口是tea算法的解密接口。
這里,當(dāng)加密算法為預(yù)設(shè)的其他加密算法時,所述解密單元23基于所述密鑰信息利用解密算法對所述彈幕信息進(jìn)行解密,還包括:
當(dāng)接收到密鑰信息后,判斷出密鑰的長度信息,并根據(jù)所述密鑰在所述密文信息中提取出附加信息,具體包括:基于所述密鑰確定出所述附加信息在所述密文信息中的插入位置,根據(jù)密鑰的長度信息確定附加信息的長度信息;在所述密文信息的所述插入位置基于所述長度信息提取出所述附加信息。其中,所述附加信息的長度可以為密鑰長度的2~3倍,且附加信息的字符可以包括:數(shù)字或字母。
基于所述密鑰確定出所述附加信息在所述密文信息中的插入位置,包括:確定所述密鑰的參照位;獲取所述密鑰參照位的字符;按照預(yù)設(shè)的第一轉(zhuǎn)換規(guī)則將所述字符轉(zhuǎn)換為一數(shù)值;基于所述數(shù)值確定出所述插入位置。
其中,預(yù)設(shè)的第一轉(zhuǎn)換規(guī)則為將所述可以包括多種:比如將字符與十進(jìn)制數(shù)值對應(yīng)轉(zhuǎn)換,將字符與ascii碼值進(jìn)行對應(yīng)轉(zhuǎn)換。
當(dāng)將字符與ascii碼值進(jìn)行對應(yīng)轉(zhuǎn)換時,接收到密鑰后,然后所述解密單元23獲取密鑰參照位的字符,確定所述字符對應(yīng)的十進(jìn)制ascii碼值,以此值作為參照值在密文中尋找附加信息字符所在的位置。尋找到該位置后,將附加信息字符從密文信息中提取出來。這里,所述密鑰的參照位可以為密鑰中的任一位,比如首位或末位;當(dāng)以密鑰的末位設(shè)置為密鑰的參照位,比如密鑰為12345,那么參照位的字符就是“5”,再獲取到“5”對應(yīng)的ascii碼為“53”,然后將附加信息從密文信息中的第53個字符之后的位置提取出即可。
將所述附加信息從密文信息中提取出之后,并判斷該密文字符末尾是否有相應(yīng)的文件類型,如果有,則新建一個該類型的文件以方便后期解密寫入。如果沒有,則默認(rèn)新建一個文檔文件來記錄解密數(shù)據(jù)。
然后,所述解密單元23在得到密鑰字符串和附加信息的字符串后,將兩個字符串進(jìn)行拼接,形成一組合密鑰,并使用該組合密鑰將密文信息轉(zhuǎn)換為明文信息,這樣就可以將加密的特殊彈幕信息轉(zhuǎn)換為明文信息,然后將其顯示在客戶端的屏幕上。
這里,當(dāng)加密算法為預(yù)設(shè)的其他加密算法,且彈幕信息為圖像信息時,所述解密單元23基于所述密鑰信息利用解密算法對所述彈幕信息進(jìn)行解密,還包括:
從圖像中讀取至少一組顏色值,所述圖像為對明文信息進(jìn)行加密的加密結(jié)果;根據(jù)第二轉(zhuǎn)換規(guī)則將所述至少一組顏色值轉(zhuǎn)換為數(shù)字信息;將所述數(shù)字信息轉(zhuǎn)換為字符編碼;將所述字符編碼轉(zhuǎn)換所述明文信息。
根據(jù)第二轉(zhuǎn)換規(guī)則將相所述至少一組顏色值轉(zhuǎn)換為數(shù)字信息,包括:
確定每種顏色對應(yīng)的最大階層,根據(jù)公式a=(b*c+g)*c+r確定所述數(shù)字信息的數(shù)值a;其中,所述每種顏色對應(yīng)的最大階層相同,所述r為紅色,所述g為綠色,所述b為藍(lán)色,所述c為所述每種顏色對應(yīng)的最大階層。
當(dāng)所述圖像中混淆有混淆色塊時,從所述圖像中讀取至少一組顏色值包括:接收混淆數(shù)值,根據(jù)所述混淆數(shù)值確定的隨機(jī)生成的混淆色塊的數(shù)量;基于混淆算法確定所述混淆色塊在所述圖像中的寫入位置;確定寫入所述顏色值的第一基準(zhǔn)點(diǎn);以所述第一基準(zhǔn)點(diǎn)為起始位置遍歷所述圖像,在遍歷過程中,基于所述混淆色塊的數(shù)量及在所述混淆色塊在所述圖像中的寫入位置跳過所述混淆色塊,讀取所述至少一組顏色值。
這里,當(dāng)加密算法為預(yù)設(shè)的其他加密算法,且彈幕信息為音頻信息時,所述解密單元23基于所述密鑰信息利用解密算法對所述彈幕信息進(jìn)行解密,還包括:
接收音頻,從所述音頻中讀取至少一種音頻碼;根據(jù)第三轉(zhuǎn)換規(guī)則將所述至少一組音頻碼轉(zhuǎn)換為明文信息。
所述從音頻中讀取至少一種音頻碼,包括:讀取音頻數(shù)據(jù),獲取所述音頻的頻率隊(duì)列;遍歷所述頻率隊(duì)列,獲取第一頻率及第二頻率;將所述第一頻率轉(zhuǎn)換為第一音頻編碼,將所述第二頻率轉(zhuǎn)換為第二音頻編碼;根據(jù)所述第一音頻編碼及所述第二音頻編碼確定相應(yīng)的音頻編碼;將所述音頻編碼進(jìn)行組合獲取所述至少一組音頻碼。
所述讀取音頻數(shù)據(jù),獲取所述音頻的頻率隊(duì)列,包括:建立一音頻信息對象,在所述音頻信息對象中設(shè)置一采樣頻率;基于所述采樣頻率采集所述音頻數(shù)據(jù),并將所述音頻數(shù)據(jù)存儲至一數(shù)組中;遍歷所述數(shù)組,將所述數(shù)組中的每一項(xiàng)數(shù)據(jù)轉(zhuǎn)換為相應(yīng)的頻率,形成頻率隊(duì)列。
所述根據(jù)第三轉(zhuǎn)換規(guī)則將所述至少一組音頻碼轉(zhuǎn)換為明文信息包括;根據(jù)預(yù)設(shè)的提取規(guī)則,將所述音頻碼拆分為至少一組音頻編碼;確定每個數(shù)字對應(yīng)的音頻編碼;基于所述每個數(shù)字對應(yīng)的音頻編碼及每組音頻編碼,將所述音頻編碼轉(zhuǎn)換為至少一組數(shù)字信息;將所述至少一組數(shù)字信息轉(zhuǎn)換為字符編碼;將所述字符編碼轉(zhuǎn)換為所述明文信息。
在得到解密后的明文信息后,所述判斷單元22還用于判斷所述明文信息的文件類型,如果是文字類的字符串則將該數(shù)據(jù)寫入到文檔文件中即可;如果是其他類型的特殊文件,比如:圖片、音頻及視頻,則使用base64字節(jié)編碼將字符串轉(zhuǎn)換為相應(yīng)的數(shù)據(jù),并寫入到之前創(chuàng)建的文件中,達(dá)到完整的解密過程。
這里,當(dāng)所述特殊彈幕信息為圖片、音頻及視頻時,由于特殊彈幕信息的明文信息有各種編碼的信息,比如:中文,英文或其他文字,因此將明文信息轉(zhuǎn)換為base64字節(jié)編碼后,則可以很好的將各國文字都可以轉(zhuǎn)為統(tǒng)一的編碼格式,防止出現(xiàn)亂碼,或者識別不到的情況,base64字節(jié)編碼要求把3個8位字節(jié)(3*8=24)轉(zhuǎn)化為4個6位的字節(jié)(4*6=24),之后在6位的前面補(bǔ)兩個0,形成8位一個字節(jié)的形式。如果剩下的字符不足3個字節(jié),則用0填充,輸出字符使用'=',因此編碼后輸出的文本末尾可能會出現(xiàn)1或2個'='。
本發(fā)明提供的實(shí)施例能帶來的有益效果至少是:
本發(fā)明提供了一種保護(hù)彈幕信息的方法及客戶端,所述方法包括:客戶端接收彈幕信息;判斷所述彈幕信息是否是特殊彈幕信息,若所述彈幕信息是所述特殊彈幕信息時,接收密鑰信息;基于所述密鑰信息利用解密算法對所述彈幕信息進(jìn)行解密,獲取所述彈幕信息的明文信息;如此,只有高級用戶對應(yīng)的客戶端才能接收到密鑰信息,然后基于密鑰信息對特殊彈幕信息進(jìn)行解密,觀看到特殊彈幕信息;即使普通用戶對應(yīng)的客戶端接收到特殊彈幕信息,也會因接收不到密鑰信息不能對特殊彈幕信息進(jìn)行解密,從而也獲取不到特殊彈幕信息的明文信息;這樣就可以進(jìn)一步增加高級用戶的數(shù)量,從而增加了直播平臺的收益。另外,由于特殊彈幕信息進(jìn)行加密了,即使黑客獲取到該特殊彈幕信息也不會輕易破解,進(jìn)一步確保了數(shù)據(jù)傳輸?shù)陌踩浴?/p>
以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。