使用JavaScript加密轉(zhuǎn)化技術(shù)將Html變?yōu)槊芪模源吮Wo(hù)html源代碼,這便是Html源碼加密。
同時(shí),這種加密技術(shù)還可實(shí)現(xiàn)網(wǎng)頁(yè)反調(diào)試、防復(fù)制、鏈接加密等功能。
什么情況下需要Html源代碼加密?
Html源代碼加密可用于哪些場(chǎng)景?
Html源代碼加密可用于以下需求場(chǎng)合:
Html源代碼保護(hù);防內(nèi)容爬蟲(chóng)、防分析、防嵌套、防內(nèi)容復(fù)制。使Html代碼不會(huì)輕易被他人獲取。
Html源代碼加密,可以實(shí)現(xiàn)哪些功能效果?
Html源代碼加密,可以實(shí)現(xiàn)以下效果:
加密的Html源碼、加密的頁(yè)面鏈接;禁用JavaScript時(shí)頁(yè)面不渲染、禁止右鍵、禁止ctrl+c、ctrl+v、禁止iframe嵌套,等。
以下進(jìn)行一次Html加密實(shí)操。
測(cè)試html代碼:
<html>
<head>
<title>Html源代碼加密</title>
<meta name="description" content="JShaman Html網(wǎng)頁(yè)源碼加密" />
<meta name="keywords" content="Html加密、網(wǎng)頁(yè)源碼加密" />
</head>
<body>
<h1>
Html加密、網(wǎng)頁(yè)源碼加密
</h1>
<a href="https://www.jshaman.com" target="_blank">JShaman.com</a>
<script>
alert("test");
</script>
</body>
</html>
使用JShaman的Html源代碼加密:https://www.jshaman.com/enhtml/
加密功能啟用:僵尸元素植入、鏈接加密、SEO優(yōu)化、JS混淆加密。
這幾項(xiàng)功能的說(shuō)明如下:
僵尸元素植入:
給頁(yè)面中隨機(jī)插入div、span、p等元素,形成新的節(jié)點(diǎn),這些節(jié)點(diǎn)中包含內(nèi)容,但不顯示、不影響頁(yè)面布局。
由于其真實(shí)存在,因此會(huì)對(duì)DevTool(瀏覽器開(kāi)發(fā)者工具)造成干擾,使用無(wú)法從“DOM和樣式探查器”中直接復(fù)制頁(yè)面內(nèi)容。
鏈接加密:
對(duì)網(wǎng)頁(yè)中所有鏈接(“a href”語(yǔ)句)進(jìn)行加密,隱藏鏈接地址。
以此防止鏈接被獲取、防止爬蟲(chóng)根據(jù)鏈接獲得其它頁(yè)面地址。
SEO優(yōu)化:
使加密后的Html代碼中包換與原頁(yè)面相同的title、keywords、description,及全頁(yè)面渲染后展示的文字內(nèi)容。
以此增加頁(yè)面對(duì)搜索引擎的友好性,使網(wǎng)頁(yè)更容易被收錄,并有排名優(yōu)化效果。
JS混淆加密:
對(duì)Html編碼后的JavaScript代碼進(jìn)行混淆加密,使代碼無(wú)法閱讀、理解。
并且是混淆加密是多態(tài)特性,一次一結(jié)果,永不重復(fù)。
加密結(jié)果、加密后的Html代碼:
加密后的Html與加密前一樣使用,無(wú)任何區(qū)別。
加密效果
將其保存為Html文件后,打開(kāi)查看效果:
1、首先,源碼是密文狀態(tài), 是混淆加密過(guò)的JS代碼,不會(huì)被人“查看源碼”即得到Html源碼。
2、加密的鏈接,鏈接雖然被加密(從源碼中只能看到錯(cuò)誤的鏈接地址),但不會(huì)影響鏈接的正常點(diǎn)擊,這還是比較神奇的,如下圖:
注:有人疑惑:從”查看器”中還是能看到“源碼”,是不是沒(méi)有起到加密效果呢?
這里需要澄清:開(kāi)發(fā)者工具“查看器”中看到的內(nèi)容,是Html代碼經(jīng)瀏覽器渲染的結(jié)果代碼,不是源碼,它是必須能被渲染出來(lái)的,如果加密代碼不能渲染,頁(yè)面也將不能顯示。
而加密,首先必須保證的是加密后的html代碼能正常使用。對(duì)吧?
其次,即使是渲染后的代碼,其中鏈接也加密了、也有了僵尸節(jié)點(diǎn)、還包含了加密代碼,等等。它跟原始的Html代碼還是有不小差異的,依然保護(hù)著原始Html代碼。
3、隨機(jī)插入的僵尸節(jié)點(diǎn),節(jié)點(diǎn)內(nèi)容也是隨機(jī)的。
4、用于SEO的節(jié)點(diǎn)內(nèi)容,內(nèi)容是原Html頁(yè)面中的核心文字,它會(huì)使加密后的Html代碼對(duì)搜索引擎收錄依然友好。如下圖:
而且title、description也是原樣保留:
綜上展示,簡(jiǎn)單總結(jié):
Html源代碼加密,有效、有用!不錯(cuò)。
tml網(wǎng)頁(yè)源碼加密
html網(wǎng)頁(yè)源碼能加密嗎?能加密到何種程度?
某些時(shí)候,我們可能需要對(duì)html網(wǎng)頁(yè)源碼加密,使網(wǎng)頁(yè)源碼不那么容易被他人獲得。出于這個(gè)目標(biāo),本文測(cè)試一種html加密方式。
提前透露:結(jié)論超出預(yù)期,似乎還實(shí)現(xiàn)了反爬蟲(chóng)。
首先來(lái)到網(wǎng)址:http://fairysoftware.com/html_jia_mi.html
由頁(yè)面介紹可知,這是一種使用js和escape結(jié)合實(shí)現(xiàn)的html加密。
直接使用頁(yè)面提供的例程,加密這一段html代碼:
得到加密的html代碼,如下圖:
然后將加密代碼粘貼到一個(gè)html文件中測(cè)試,如下圖:
頁(yè)面可以正常打開(kāi)。查看網(wǎng)頁(yè)源碼,果然源碼是加密的,如下圖:
特別的驚喜之處是:
如上圖所示,鏈接果然消失了。
即使用開(kāi)發(fā)者工具查看,也無(wú)法得到鏈接地址,而原始未加密前的html代碼中是有鏈接的,如下圖:
那么消失了的鏈接,還能正常點(diǎn)擊嗎?
點(diǎn)擊,鏈接可以正常打開(kāi):
雖然href鏈接隱藏了,但還能正常打開(kāi)頁(yè)面,功能完全正常。
測(cè)試結(jié)果既驚喜又意外,這樣的html網(wǎng)頁(yè)加密,效果還真是不錯(cuò),值得一用。
業(yè)的JavaScript混淆加密:JShaman
JShaman輕量版功能詳解
簡(jiǎn)介
JShaman輕量版是JShaman.com研發(fā)的專(zhuān)業(yè)JavaScript代碼混淆加密產(chǎn)品,為平臺(tái)形式。
具有保護(hù)效果強(qiáng)大、功能穩(wěn)定、開(kāi)放WebAPI、全自主技術(shù)等特點(diǎn)。
功能
JShaman輕量版目前具有18項(xiàng)混淆加密功能。
完整啟用各功能時(shí),保護(hù)效果如下所示:
保護(hù)前的代碼:
配置:
保護(hù)結(jié)果:
以下給出各混淆加密項(xiàng)目的單獨(dú)說(shuō)明及保護(hù)效果。
1、局部變量名、函數(shù)名混淆
可對(duì)局部變量名稱(chēng)進(jìn)行變形,賦以無(wú)意義、不規(guī)律的名稱(chēng)。效果如下:
保護(hù)前:
配置:
保護(hù)后:
2、全局變量名混淆、全局函數(shù)名混淆
與上相信,區(qū)別在于之前是針對(duì)局部變量,此處可處理全局變量。效果如下:
保護(hù)前:
配置:
保護(hù)結(jié)果:
3、成員函數(shù)加密
可對(duì)JavaScript內(nèi)置語(yǔ)法方法進(jìn)行加密,如console.log()中的log函數(shù)。
效果如下:
保護(hù)前:
配置:
保護(hù)結(jié)果:
4、數(shù)值常量加密
將數(shù)值常量變?yōu)檫\(yùn)算表達(dá)式,效果如下:
保護(hù)前:
配置:
保護(hù)后:
5、二進(jìn)制表達(dá)式混淆
將二進(jìn)制表達(dá)式變形為函數(shù)調(diào)用表達(dá)式,效果如下:
保護(hù)前:
配置:
保護(hù)結(jié)果:
6、布爾型數(shù)值加密
對(duì)true、false值進(jìn)行加密,效果如下:
保護(hù)前:
配置:
保護(hù)后:
7、字符串Unicode化加密
效果如下:
保護(hù)前:
配置:
保護(hù)結(jié)果:
8、Eval加密
對(duì)特定的語(yǔ)句進(jìn)行Eval加密,效果如下:
保護(hù)前:
配置:
保護(hù)結(jié)果:
9、平展控制流
將函數(shù)中代碼平坦化,并打亂代碼顯示順序,效果如下:
保護(hù)前:
配置:
保護(hù)結(jié)果:
10、收縮控制流
將函數(shù)中符合條件的多行代碼收縮為單行,形成逗號(hào)運(yùn)算符語(yǔ)法,效果如下:
保護(hù)前:
配置:
保護(hù)后:
11、字符串陣列化
將代碼中包含的字字符串集中放置到數(shù)組,效果如下:
保護(hù)前:
配置:
保護(hù)結(jié)果:
12、陣列字符串加密
字符串陣列化后生效,將陣列中的字符串內(nèi)容進(jìn)行加密,效果如下:
保護(hù)前:
配置:
保護(hù)結(jié)果:
13、虛擬機(jī)執(zhí)行保護(hù)
將某些代碼轉(zhuǎn)為虛擬機(jī)OP指令,在虛擬機(jī)中執(zhí)行,效果如下:
保護(hù)前:
配置:
保護(hù)結(jié)果:
14、代碼壓縮
去除回車(chē)換行、空格,壓縮代碼體積。效果如下:
壓縮前:
壓縮后:
15、反格式化
需要與代碼壓縮同時(shí)使用,如以下保護(hù)后的代碼:
如果此代碼被美化、格式化,將無(wú)法運(yùn)行:
16、保留注釋
默認(rèn)保護(hù)后,會(huì)清除掉代碼中所有注釋語(yǔ)句,如需保留注釋?zhuān)瑒t使用此項(xiàng)。
17、保留關(guān)鍵字
對(duì)指定名稱(chēng)的字符串、函數(shù)名、變量名不進(jìn)行保護(hù),效果如下:
保護(hù)前:
如不使用保留字功能,勾選以下選項(xiàng):
保護(hù)結(jié)果:
如果選擇保留關(guān)鍵字,并填入“abc”:
則保護(hù)結(jié)果成為:
注:保留字最多可設(shè)置255個(gè)。
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。