本發(fā)明屬于計(jì)算機(jī),尤其是涉及一種防篡改數(shù)字水印生成方法。
背景技術(shù):
1、數(shù)字水印是一種將數(shù)字信息嵌入到載體中的技術(shù),常用于保護(hù)數(shù)字內(nèi)容的版權(quán)和防止篡改,然而,傳統(tǒng)的數(shù)字水印生成方法往往存在被刪除或者篡改的風(fēng)險(xiǎn),特別是在前端應(yīng)用中,數(shù)字水印容易被攻擊者通過手段刪除或者修改。因此,本發(fā)明提供了一種在前端應(yīng)用中生成不可刪除的數(shù)字水印的方法,保證數(shù)字內(nèi)容的可追溯性和防篡改性
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本發(fā)明旨在提出一種防篡改數(shù)字水印生成方法,以期解決上述部分技術(shù)問題中的至少之一。
2、為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
3、一種防篡改數(shù)字水印生成方法,包括如下步驟:
4、生成一個(gè)數(shù)字水印,所述水印由隨機(jī)的字符、數(shù)字、圖形組成;
5、對所述數(shù)字水印進(jìn)行混淆處理,并將處理后數(shù)字水印嵌入至網(wǎng)頁中;
6、嵌有數(shù)字水印的網(wǎng)頁在加載的過程中,檢測所述數(shù)字水印是否仍存在于網(wǎng)頁中,并驗(yàn)證數(shù)字水印的內(nèi)容是否未被篡改;
7、當(dāng)檢測結(jié)果及驗(yàn)證結(jié)果均為是時(shí),正常開啟網(wǎng)頁;否則將錯(cuò)誤信息發(fā)送至工作人員處。
8、進(jìn)一步的,所述生成一個(gè)數(shù)字水印的過程包括:
9、設(shè)置水印長度并選擇用于生成水印的字符集,其中,所述字符集包括大寫字母、小寫字母、數(shù)字、特殊字符、圖形符號;
10、根據(jù)設(shè)置的水印長度生成一個(gè)具有相同長度的數(shù)組,隨機(jī)從所述字符集中選取一個(gè)值填入數(shù)組中,直至所述數(shù)組被完全填充。
11、進(jìn)一步的,所述數(shù)字水印生成后,為其添加標(biāo)識標(biāo)簽,所述標(biāo)識標(biāo)簽的生成過程包括:
12、順序生成標(biāo)識符,記錄數(shù)字水印生成的時(shí)間戳,記錄當(dāng)前網(wǎng)頁的版本號,將所述標(biāo)識符、時(shí)間戳、版本號通過哈希計(jì)算,得到對應(yīng)的哈希值,并將所述哈希值作為標(biāo)識標(biāo)簽。
13、進(jìn)一步的,所述隨機(jī)從所述字符集中選取一個(gè)值填入數(shù)組中的過程包括:
14、使用系統(tǒng)的當(dāng)前時(shí)間作為一個(gè)主要的隨機(jī)種子,并從系統(tǒng)環(huán)境中獲取多個(gè)環(huán)境變量;
15、將獲取的時(shí)間戳和環(huán)境變量的值結(jié)合成一個(gè)字符串,對字符串進(jìn)行哈希處理,將生成的哈希值轉(zhuǎn)換為整數(shù)并將其作為隨機(jī)數(shù)生成器的種子;
16、使用隨機(jī)數(shù)生成器生成隨機(jī)數(shù),根據(jù)隨機(jī)數(shù)在字符集中選擇對應(yīng)的字符。
17、進(jìn)一步的,所述檢測數(shù)字水印是否仍存在于網(wǎng)頁中的過程包括:
18、通過發(fā)送http請求并解析返回的html響應(yīng)獲取指定網(wǎng)頁的html內(nèi)容,提取解析獲取到的html中需要檢測的內(nèi)容;
19、在提取的過程中使用字符串匹配算法搜索數(shù)字水印的特征,根據(jù)搜索結(jié)果判斷水印是否仍然存在;
20、如果找到相應(yīng)的特征,說明水印仍然存在;如果沒有找到,則可以認(rèn)為水印已被移除或改變。
21、進(jìn)一步的,所述驗(yàn)證數(shù)字水印的內(nèi)容是否未被篡改的過程包括:
22、在內(nèi)容中嵌入數(shù)字水印時(shí),使用特定的算法將水印信息與原始內(nèi)容結(jié)合,記錄原始內(nèi)容的哈希值;
23、當(dāng)需要驗(yàn)證時(shí),提取當(dāng)前內(nèi)容,使用與嵌入水印時(shí)相同的算法從提取的內(nèi)容中恢復(fù)水印信息;
24、計(jì)算提取內(nèi)容的哈希值,并與之前保存的原始內(nèi)容哈希值進(jìn)行比較,如果兩個(gè)哈希值一致,則內(nèi)容未被篡改;否則內(nèi)容被篡改。
25、進(jìn)一步的,所述對數(shù)字水印進(jìn)行混淆處理的過程包括:
26、通過創(chuàng)建一個(gè)字符映射表將水印的字符替換為其他字符或符號;
27、對變量名進(jìn)行混淆,將其替換為無意義的字符串;
28、對函數(shù)名進(jìn)行隨機(jī)化,將函數(shù)名稱替換為不具描述性的字符組合;
29、將數(shù)字水印分解為多個(gè)片段,并將這些片段分散到不同的代碼位置。
30、相對于現(xiàn)有技術(shù),本發(fā)明所述的一種防篡改數(shù)字水印生成方法具有以下
31、有益效果:
32、實(shí)現(xiàn)了數(shù)字內(nèi)容的可追溯和防篡改,與傳統(tǒng)的數(shù)字水印生成方法相比,本發(fā)明的數(shù)字水印無法被常規(guī)手段刪除或篡改,提高了數(shù)字內(nèi)容的安全性和保護(hù)效果,同時(shí),本發(fā)明所提供的混淆數(shù)字水印的方法可以降低攻擊者的攻擊難度,增加數(shù)字水印的可靠性和復(fù)雜度。
1.一種防篡改數(shù)字水印生成方法,其特征在于,包括如下步驟:
2.根據(jù)權(quán)利要求1所述的一種防篡改數(shù)字水印生成方法,其特征在于,所述生成一個(gè)數(shù)字水印的過程包括:
3.根據(jù)權(quán)利要求1所述的一種防篡改數(shù)字水印生成方法,其特征在于,所述數(shù)字水印生成后,為其添加標(biāo)識標(biāo)簽,所述標(biāo)識標(biāo)簽的生成過程包括:
4.根據(jù)權(quán)利要求2所述的一種防篡改數(shù)字水印生成方法,其特征在于,所述隨機(jī)從所述字符集中選取一個(gè)值填入數(shù)組中的過程包括:
5.根據(jù)權(quán)利要求1所述的一種防篡改數(shù)字水印生成方法,其特征在于,所述檢測數(shù)字水印是否仍存在于網(wǎng)頁中的過程包括:
6.根據(jù)權(quán)利要求1所述的一種防篡改數(shù)字水印生成方法,其特征在于,所述驗(yàn)證數(shù)字水印的內(nèi)容是否未被篡改的過程包括:
7.根據(jù)權(quán)利要求1所述的一種防篡改數(shù)字水印生成方法,其特征在于,所述對數(shù)字水印進(jìn)行混淆處理的過程包括: