xmlmd5加密
Ⅰ 用MD5加密分頁文件名防採集,會影響搜索引擎蜘蛛對其收錄嗎
目前防採集的方法有很多種,先介紹一下常見防採集策略方法和它的弊端及採集對策:
一、判斷一個IP在一定時間內對本站頁面的訪問次數,如果明顯超過了正常人瀏覽速度,就拒絕此IP訪問
弊端:
1、此方法只適用於動態頁面,如:asp\jsp\php等…靜態頁面無法判斷某個IP一定時間訪問本站頁面的次數
2、此方法會嚴重影響搜索引擎蜘蛛對其收錄,因為搜索引擎蜘蛛收錄時,瀏覽速度都會比較快而且是多線程。此方法也會拒絕搜索引擎蜘蛛收錄站內文件
採集對策:只能放慢採集速度,或者不採
建議:做個搜索引擎蜘蛛的IP庫,只允許搜索引擎蜘蛛快速瀏覽站內內容。搜索引擎蜘蛛的IP庫的收集,也不太容易,一個搜索引擎蜘蛛,也不一定只有一個固定的IP地址。
評論:此方法對防採集比較有效,但卻會影響搜索引擎對其收錄。
二、用javascript加密內容頁面
弊端:此方法適用於靜態頁面,但會嚴重影響搜索引擎對其收錄情況,搜索引擎收到到的內容,也都是加密後的內容
採集對策:建議不採,如非要采,就把解密碼的JS腳本也採下來。
建議:目前沒有好的改良建議
評論:建議指望搜索引擎帶流量的站長不要使用此方法。
三、把內容頁面里的特定標記替換為」特定標記+隱藏版權文字「
弊端:此方法弊端不大,僅僅會增加一點點的頁面文件大小,但容易反採集
採集對策:把採集來的含有隱藏版權文字內容的版權文字替掉,或替換成自己的版權。
建議:目前沒有好的改良建議
評論:自己感覺實用價值不大,就算是加上隨機的隱藏文字,也等於畫蛇添足。
四、只允許用戶登陸後才可以瀏覽
弊端:此方法會嚴重影響搜索引擎蜘蛛對其收錄
採集對策:目前落伍已經有人發了對策文章 ,具體對策就看這個吧《ASP小偷程序如何利用XMLHTTP實現表單的提交以及cookies或session的發送》
建議:目前沒有好的改良建議
評論:建議指望搜索引擎帶流量的站長不要使用此方法。不過此方法防一般的採集程序,還是有點效果的。
五、用javascript、vbscript腳本做分頁
弊端:影響搜索引擎對其收錄
採集對策:分析javascript、vbscript腳本,找出其分頁規則,自己做個對應此站的分頁集合頁即可。
建議:目前沒有好的改良建議
評論:感覺懂點腳本語言的人都能找出其分頁規則
六、只允許通過本站頁面連接查看,如:Request.ServerVariables(」HTTP_REFERER」)
弊端:影響搜索引擎對其收錄
採集對策:不知道能不能模擬網頁來源。。。。目前我沒有對應此方法的採集對策
建議:目前沒有好的改良建議
評論:建議指望搜索引擎帶流量的站長不要使用此方法。不過此方法防一般的採集程序,還是有點效果的。
從以上可以看出,目前常用的防採集方法,要麼會對搜索引擎收錄有較大影響,要麼防採集效果不好,起不到防採集的效果。那麼,還有沒有一種有效防採集,而又不影響搜索引擎收錄的方法呢?那就請繼續往下看吧,精彩的地方馬上呈獻給大家。
下面就是我的防採集策略,防採集而又不防搜索引擎
從前面的我講的採集原理大家可以看出,絕大多數採集程序都是靠分析規則來進行採集的,如分析分頁文件名規則、分析頁面代碼規則。
一、分頁文件名規則防採集對策
大部分採集器都是靠分析分頁文件名規則,進行批量、多頁採集的。如果別人找不出你的分頁文件的文件名規則,那麼別人就無法對你的網站進行批量多頁採集。
實現方法:
我認為用MD5加密分頁文件名是一個比較好的方法,說到這里,有人會說,你用MD5加密分頁文件名,別人根據此規則也可以模擬你的加密規則得到你的分頁文件名。
我要指出的是我們加密分頁文件名時,不要只加密文件名變化的部分
如果I代表分頁的頁碼,那麼我們不要這樣加密
page_name=Md5(I,16)&」.htm」
最好給要加密的頁碼上再跟進一個或多個字元,如:page_name=Md5(I&「任意一個或幾個字母」,16)&」.htm」
因為MD5是無法反解密的,別人看到的會頁字母是MD5加密後的結果,所以加人也無法知道你在 I 後面跟進的字母是什麼,除非他用暴力****MD5,不過不太現實。
二、頁面代碼規則防採集對策
如果說我們的內容頁面無代碼規則,那麼別人就無法從你的代碼中提取他們所需要的一條條內容。
所以我們要的這一步做到防採集,就要使代碼無規則。
實現方法:
使對方需要提取的標記隨機化
1、定製多個網頁模板,每個網頁模板里的重要HTML標記不同,呈現頁面內容時,隨機選取網頁模板,有的頁面用CSS+DIV布局,有的頁面用table布局,此方法是麻煩了點,一個內容頁面,要多做幾個模板頁面,不過防採集本身就是一件很煩瑣的事情,多做一個模板,能起到防採集的作用,對很多人來說,都是值得的。
2、如果嫌上面的方法太麻煩,把網頁里的重要HTML標記隨機化,也可以。
做的網頁模板越多,html代碼越是隨機化,對方分析起內容代碼時,就越麻煩,對方針對你的網站專門寫採集策略時,難度就更大,在這個時候,絕大部分人,都會知難而退,因為這此人就是因為懶,才會採集別人網站數據嘛~~~再說一下,目前大部分人都是拿別人開發的採集程序去採集數據,自己開發採集程序去採集數據的人畢竟是少數。
還有些簡單的思路提供給大家:
1、把對數據採集者重要,而對搜索引擎不重要的內容用客戶端腳本顯示
2、把一頁數據,分為N個頁面顯示,也是加大採集難度的方法
3、用更深層的連接,因為目前大部分採集程序只能採集到網站內容的前3層,如果內容所在的連接層更深,也可以避免被採集。不過這樣可能會給客戶造成瀏覽上的不便。
如:
大多網站都是 首頁—-內容索引分頁—-內容頁
如果改成:
首頁—-內容索引分頁—-內容頁入口—-內容頁
註:內容頁入口最好能加上自動轉入內容頁的代碼
Ⅱ 如何封裝 Md5Utils 加密工具類怎麼實現加鹽操作
對於MD5Utils的封裝與加鹽操作,確保數據安全至關重要。Apache Commons Codec提供了加密解密功能,我們通過以下步驟來實現:
1. 在項目中添加Apache Commons Codec的依賴,確保在pom.xml中配置並更新到lib目錄,以便在發布時可用。
2. 在utils包中創建Md5Utils工具類,便於開發使用。以下是一個簡單的實現示例:
<pre>public class Md5Utils {
public static String encrypt(String input, String salt) {
// 加鹽操作的代碼
}
}
在測試用例Md5UtilsTest中,你可以像這樣調用加密方法:
<pre>String encrypted = Md5Utils.encrypt("123456", "saltValue");</pre>
然而,單純使用MD5加密並不足夠安全,因為存在已知的解密工具,如cmd5.com。因此,引入"加鹽"操作至關重要。
加鹽操作是指在原始字元串前添加隨機字元串(鹽),混合後進行MD5加密。例如,一個簡單的實現可能如下:
<pre>String saltedInput = input + salt;
String encryptedSalted = Md5Utils.encrypt(saltedInput, ""); // 第二個參數通常留空,表示使用默認的鹽值
通過加鹽,我們增加了攻擊者破解密碼的難度,提高了安全性。在實際應用中,鹽值應確保每次請求時都是隨機生成的,以進一步增強安全性。
Ⅲ .NET進階篇04-Serialize序列化、加密解密
知識需要持續積累、總結與沉澱,思考與寫作是促進成長的催化劑。本文內容輕松,重在代碼展示與實踐,對大腦挑戰不大,故解析部分較少,代碼段落較多,旨在提供直接可用的技術指南。
一、概述
序列化是將內存中的對象轉換為持久化的二進制數據形式,用於存儲或傳輸,主要目的是實現不同平台間通信。序列化與反序列化作用互補,前者將對象狀態保存,後者則還原對象狀態。類上添加Serializable特性標記,允許序列化,非序列化欄位通過NonSerialized特性排除。泛型類BinarySerializeHelper可包裝BinaryFormatter,簡化序列化過程。
加密技術通過編碼消息,構建安全交流機制,確保消息僅由發送者與期望接收者理解。加密安全性的三個關鍵點:信息不可篡改、保護隱私和防止抵賴。
二、序列化
BinaryFormatter用於對象的二進制序列化與反序列化。創建實例,調用Serialize方法寫入文件流,反序列化時調用Deserialize方法。
XML序列化使用XmlSerializer類,無需Serializable特性,實例化時需指定待序列化的對象類型。
JSON支持更輕量的數據傳輸,.NET提供DataContractJsonSerializer和JavaScriptSerializer進行轉換,JavaScriptSerializer兼容更廣泛,且可序列化匿名類型。
三、加解密
加密分為不可逆、對稱可逆與非對稱可逆三種方式。MD5(不可逆加密)提供單向散列,輸入任意長度信息生成固定長度摘要。MD5應用包括防止信息篡改、保護隱私與數字簽名,但因破解風險,現代推薦使用更安全的加密方法。
對稱加密(如DES、AES、Blowfish)使用單一密鑰進行加密與解密,易於實現但密鑰安全需嚴格管理。C#版本DES加解密實現示例。
非對稱加密(如RSA)採用公鑰與私鑰對,確保信息只能由持有相應密鑰的雙方解密與加密。結合MD5散列演算法,實現數字簽名,確保信息未被篡改,但明文傳輸仍存在安全風險。C#版本RSA加解密實現示例。
總結,本文聚焦於.NET框架中的序列化與加密解密技術,通過代碼示例詳細介紹了BinaryFormatter、XML序列化、JSON序列化以及MD5、DES、AES、RSA等加密演算法的使用方法與應用場景,旨在為開發者提供直觀、實用的技術指南。