整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          html加密代碼


          登陸進(jìn)入

          <!DOCTYPE html>


          <html>

          <head>

          <meta charset="utf-8">

          <title></title>

          </head>

          <body>


          </body>

          </html>


          歡迎光臨


          <script langguage="javascript">



          function loopy(){

          var mima ="";

          while(mima!="176901111*"){mima=prompt("請輸入我的手機(jī)號(hào)碼");}


          alert("打開了"); }

          loopy()

          </script>












          </body>




          [贊]關(guān)注一下天天新的html代碼發(fā)布


          [比心][比心][比心][比心][比心][比心][比心][比心][比心][比心][比心]

          么是Html源代碼加密?

          使用JavaScript加密轉(zhuǎn)化技術(shù)將Html變?yōu)槊芪模源吮Wo(hù)html源代碼,這便是Html源碼加密。

          同時(shí),這種加密技術(shù)還可實(shí)現(xiàn)網(wǎng)頁反調(diào)試、防復(fù)制、鏈接加密等功能。

          應(yīng)用場景

          什么情況下需要Html源代碼加密?

          Html源代碼加密可用于哪些場景?

          Html源代碼加密可用于以下需求場合:

          Html源代碼保護(hù);防內(nèi)容爬蟲、防分析、防嵌套、防內(nèi)容復(fù)制。使Html代碼不會(huì)輕易被他人獲取。

          能功效果

          Html源代碼加密,可以實(shí)現(xiàn)哪些功能效果?

          Html源代碼加密,可以實(shí)現(xiàn)以下效果:

          加密的Html源碼、加密的頁面鏈接;禁用JavaScript時(shí)頁面不渲染、禁止右鍵、禁止ctrl+c、ctrl+v、禁止iframe嵌套,等。

          Html加密實(shí)例

          以下進(jìn)行一次Html加密實(shí)操。

          測試html代碼:

          <html>

          <head>

          <title>Html源代碼加密</title>

          <meta name="description" content="JShaman Html網(wǎng)頁源碼加密" />

          <meta name="keywords" content="Html加密、網(wǎng)頁源碼加密" />

          </head>

          <body>

          <h1>

          Html加密、網(wǎng)頁源碼加密

          </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)功能的說明如下:

          僵尸元素植入:

          給頁面中隨機(jī)插入div、span、p等元素,形成新的節(jié)點(diǎn),這些節(jié)點(diǎn)中包含內(nèi)容,但不顯示、不影響頁面布局。
          由于其真實(shí)存在,因此會(huì)對DevTool(瀏覽器開發(fā)者工具)造成干擾,使用無法從“DOM和樣式探查器”中直接復(fù)制頁面內(nèi)容。

          鏈接加密:

          對網(wǎng)頁中所有鏈接(“a href”語句)進(jìn)行加密,隱藏鏈接地址。
          以此防止鏈接被獲取、防止爬蟲根據(jù)鏈接獲得其它頁面地址。

          SEO優(yōu)化:

          使加密后的Html代碼中包換與原頁面相同的title、keywords、description,及全頁面渲染后展示的文字內(nèi)容。
          以此增加頁面對搜索引擎的友好性,使網(wǎng)頁更容易被收錄,并有排名優(yōu)化效果。

          JS混淆加密:

          對Html編碼后的JavaScript代碼進(jìn)行混淆加密,使代碼無法閱讀、理解。
          并且是混淆加密是多態(tài)特性,一次一結(jié)果,永不重復(fù)。

          加密結(jié)果、加密后的Html代碼:

          加密后的Html與加密前一樣使用,無任何區(qū)別。

          加密效果

          將其保存為Html文件后,打開查看效果:

          1、首先,源碼是密文狀態(tài), 是混淆加密過的JS代碼,不會(huì)被人“查看源碼”即得到Html源碼。

          2、加密的鏈接,鏈接雖然被加密(從源碼中只能看到錯(cuò)誤的鏈接地址),但不會(huì)影響鏈接的正常點(diǎn)擊,這還是比較神奇的,如下圖:

          注:有人疑惑:從”查看器”中還是能看到“源碼”,是不是沒有起到加密效果呢?

          這里需要澄清:開發(fā)者工具“查看器”中看到的內(nèi)容,是Html代碼經(jīng)瀏覽器渲染的結(jié)果代碼,不是源碼,它是必須能被渲染出來的,如果加密代碼不能渲染,頁面也將不能顯示。

          而加密,首先必須保證的是加密后的html代碼能正常使用。對吧?

          其次,即使是渲染后的代碼,其中鏈接也加密了、也有了僵尸節(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頁面中的核心文字,它會(huì)使加密后的Html代碼對搜索引擎收錄依然友好。如下圖:


          而且title、description也是原樣保留:


          綜上展示,簡單總結(jié):

          Html源代碼加密,有效、有用!不錯(cuò)。

          已經(jīng)知道了對方是

          如何自定義字體加密的了



          你要想去反反爬

          你就要先站在對方的角度去思考問題

          有句話這么說來著

          “知己知彼,才能那啥”


          那么對于像貓眼電影、大眾點(diǎn)評(píng)等等

          那樣的 css 自定義字體加密

          應(yīng)該怎么破呢?

          接下來就是

          學(xué)習(xí) python 的正確姿勢

          有人說了

          不就是把字體通過 unicode 編碼嗎?

          那就簡單了啊

          把每個(gè)字的編碼找到

          然后使用字典把編碼和對應(yīng)的字對應(yīng)起來

          抓取分析的時(shí)候

          直接替換不就得了

          有道理是有道理

          但是

          如果我每次返回給你的編碼都不一樣呢?

          你說死不死



          好了好了,先別哭得那么舒服

          我們來看看天貓電影票房榜單的頁面

          https://maoyan.com/board/1




          正如你所看到的那樣

          這里也使用了字體加密

          通過源代碼我們可以看到

          font-face這里制定了字體文件路徑


          還是熟悉的配方

          熟悉的味道~


          不過小老弟

          還是不要開心太早

          刷新幾次你就會(huì)發(fā)現(xiàn)

          (盯著下圖 2 秒鐘)

          看到?jīng)]有

          字體文件一直在變

          woc!

          玩呢?

          我們先把字體文件下載下來

          # 把整個(gè)頁面搞下來
          url = 'https://maoyan.com/board/1'
          html = download_html(url).decode('utf-8')
          

          用正則把字體文件名拿一下

          font_file_name = re.findall(r'//vfile.meituan.net/colorstone/(\w+\.woff)', html)[0]
          


          拿到了文件名之后就構(gòu)建一下url

          然后把字體文件下載下來

          url = 'http://vfile.meituan.net/colorstone/' + font_file_name
          font_file = download_html(url)
          

          接著把字體文件寫到本地文件中

           with open('fonts/' + font_file, 'wb') as f:
           f.write(new_file)
          


          使用 fontTools 來獲取字體

          如果你之前沒安裝的話要安裝才能用

          接著我們把字體文件保存為 xml

          font = TTFont('fonts/' + font_file)
          font.saveXML('./'+font_file+'.xml')
          


          快打開打開看看

          哇,這些玩意

          有點(diǎn)眼熟啊

          這不就是加密的 unicode 碼么

          左邊的 id 難道就是對應(yīng)的數(shù)字?


          恩沒那么簡單

          就能找到聊得來的伴

          尤其是在看過了那么多背叛

          總是....



          不好意思

          走錯(cuò)片場了

          回到我們剛剛的 xml 文件

          往下拉一下

          可以看到這個(gè)



          這里每一個(gè)編碼都對應(yīng)一個(gè) TTGlyph 對象

          從各種 x y 坐標(biāo)可以猜測

          它應(yīng)該是用來繪制一個(gè)字的

          我們把任意一個(gè)對象復(fù)制一下

          然后用 matplotlib 根據(jù)坐標(biāo)畫個(gè)圖試試看

          import matplotlib.pyplot as plt
          import re
          str = """"
          <contour>
           <pt x="130" y="201" on="1"/>
           <pt x="145" y="126" on="0"/>
           <pt x="216" y="60" on="0"/>
           <pt x="270" y="60" on="1"/>
           <pt x="332" y="60" on="0"/>
           <pt x="417" y="146" on="0"/>
           .....此處省略一點(diǎn)代碼
           </contour>
          """
          x = [int(i) for i in re.findall(r'<pt x="(.*?)" y=', str)]
          y = [int(i) for i in re.findall(r'y="(.*?)" on=', str)]
          print(x)
          print(y)
          plt.plot(x, y)
          plt.show()
          

          運(yùn)行一波


          哈哈

          媽的,uniEA78 就是 3 !

          那么其它的編碼也是這個(gè)道理了

          還記得 python爬蟲20 | 小帥b教你如何識(shí)別圖片驗(yàn)證碼 嗎?

          我們把那十個(gè)編碼都畫一遍

          然后識(shí)別成數(shù)字

          再封裝成字典不就好了?


          好像這樣做效率不高耶

          有沒有別的什么辦法呢

          我們再請求一下貓眼的字體文件

          這次返回的文件又不同了


          打開你會(huì)發(fā)現(xiàn)

          返回的編碼都不一樣了



          咋整捏

          還記得我們剛剛繪制的 3 么?


          我們來搜一下新下載的文件

          是不是繪制 3 的坐標(biāo)也是一樣的呢

          嘿嘿

          仔細(xì)看下上面兩張圖里面的坐標(biāo)

          居然一模一樣

          也就是說

          雖然編碼的名稱不同

          但是

          它們對象里面對應(yīng)的內(nèi)容是一樣

          對不對?

          靈感來了

          就是這里了

          從這里下手


          我們在第一次請求字體文件的時(shí)候

          把編碼對應(yīng)的數(shù)字先給找出來

          然后記下來

          那么以后再請求到不同的字體文件的時(shí)候

          雖然得到的編碼不同

          但是我們可以根據(jù)對象對應(yīng)的內(nèi)容進(jìn)行判斷

          從而就可以得出

          新的編碼和舊的編碼指向同一個(gè)內(nèi)容

          那么這兩個(gè)編碼對應(yīng)的數(shù)字就是一樣的


          代碼走起~

          第一次請求獲取一個(gè)字體文件


          打開 xml 獲取到 unicode 編碼

          接著你可以通過繪制圖的方式

          或者通過 fontCreator 軟件打開字體文件

          或者通過字符去比對每個(gè) unicode 代表的數(shù)字


          然后

          你就可以得到相應(yīng)的數(shù)字

          把它寫到字典里面去


          因?yàn)槊看握埱蟮玫降淖煮w編碼都不同

          所以上面這個(gè)就要作為我們的判斷依據(jù)

          當(dāng)我們再請求的時(shí)候

          如果得到的是和我們一開始請求

          得到的字體文件一樣的話

          那就直接返回我們剛剛的字典


          不相同的話

          我們就要把新的字體文件下載下來

          然后對每個(gè)編碼的對象跟舊的字體文件的每個(gè)編碼的對象比較

          如果對象是相同的話

          就把舊的編碼所對應(yīng)的數(shù)字賦給新的編碼

          因?yàn)榫W(wǎng)頁上顯示的是 這樣開頭的

          所以我們也要跟著換一下


          這時(shí)候運(yùn)行

          就會(huì)得到新的編碼和對應(yīng)的數(shù)字了


          爽啊

          有了這個(gè)之后

          我想爬取具體數(shù)據(jù)對你來說不在話下了吧

          這里就隨便獲取一個(gè)電影的實(shí)時(shí)票房來舉例


          簡單粗暴的使用下正則


          爬取到編碼的時(shí)候我們轉(zhuǎn)化一下

          就是當(dāng)編碼和字典列表里面的編碼有相同的

          就替換成數(shù)字


          運(yùn)行之后


          看下網(wǎng)頁


          沒毛病

          再爬取下總票房試試


          ok

          依然沒毛病


          主站蜘蛛池模板: 国产精品毛片一区二区| 国产伦精品一区二区三区精品 | 精品一区二区三区3d动漫| 国产Av一区二区精品久久| 少妇人妻精品一区二区| 国产一区在线播放| 中文字幕在线观看一区二区| 国产精品高清一区二区三区| 国产大秀视频在线一区二区| 日本一区二区三区久久| 久久无码一区二区三区少妇| 亚洲一区二区三区首页| 成人h动漫精品一区二区无码| 三级韩国一区久久二区综合| 少妇无码AV无码一区| 亚洲码欧美码一区二区三区| 精品一区二区三区四区电影| 久久婷婷色一区二区三区| 精品久久综合一区二区| 精品国产一区二区三区久久| 精品无码国产一区二区三区麻豆| AV无码精品一区二区三区宅噜噜 | 日本一区午夜爱爱| 久久久久久人妻一区精品| 韩国精品福利一区二区三区| 日本成人一区二区三区| 无码喷水一区二区浪潮AV| 国产色精品vr一区区三区| 无码日韩人妻av一区免费| 视频一区精品自拍| 女女同性一区二区三区四区| 国产爆乳无码一区二区麻豆| 国产无人区一区二区三区| 人妻无码一区二区不卡无码av | 久久国产精品视频一区| 精品一区中文字幕| 亚洲日本va一区二区三区| 国产另类TS人妖一区二区| 日本一区二区三区中文字幕| 日韩免费一区二区三区在线| 国产亚洲一区二区三区在线观看|