客戶端哈希加密(Javascript哈希加密,附源碼)

摘要

咱們很難想象用戶在什麼樣的網絡環境使用咱們開發的應用,若是用戶所處的網絡環境不是一個可信任的環境,那麼用戶的帳戶安全就可能有威脅,好比用戶登錄時提交的帳號密碼被網絡嗅探器竊取;客戶端加密數據能有效的防護網絡嗅探器竊取數據,經過在客戶端Javascript加密數據後再提交至服務端進行驗證有效提升了系統的安全係數,這符合縱深防護原則和數據安全要素機密性;本文整理了兩種經常使用的加密算法:md5和sha1;算法

 

HashEncrypt加密對象

加密算法封裝HashEncrypt對象中,包含MD五、SHA1兩個方法和HashFormat屬性,此外還擴展了系統的String類型,爲其實例添加了md5和sha1方法;安全

屬性

HashFormat:輸出格式枚舉,是object類型,靜態結構:{ Base64: "Base64", Hex: "Hex", String: "String" }網絡

方法

MD5方法函數

HashEncrypt.MD5(string,ascii,hexUpperCase )編碼

 

string   類型:string ,要須要加密的內容,必須的加密

ascii 類型:bool,可選的,是否以ASCII字符編碼加密,默認是Unicodespa

hexUpperCase   類型:bool,可選的,輸出的十六進制編碼是否爲大寫code

 

HashEncrypt.MD5(string,base64Pad,ascii )orm

string   類型:string ,要須要加密的內容對象

ascii 類型:bool,是否以ASCII字符編碼加密,默認是Unicode

base64Pad   類型:string,輸出base64的填充字符默認是"=",若是設置這個參數爲字符串那麼輸出格式默認是base64編碼。

 

HashEncrypt.MD5(string,hexUpperCase)

 

string   類型:string ,要須要加密的內容

hexUpperCase   類型:number,1表示輸出的十六進制編碼爲大寫;

 

HashEncrypt.MD5(string,options)

 

string   類型:string ,要須要加密的內容

options   類型:object,加密的參數選項;

 

options屬性說明:

 

ascii 類型:bool,是否以ASCII字符編碼加密,默認是Unicode

 

base64 類型:string,輸出base64的填充字符默認是"=",若是設置這個參數爲字符串那麼輸出格式默認是base64編碼。

 

hexUpperCase 類型:bool,輸出的十六進制編碼是否爲大寫

 

format 類型:HashEncrypt.HashFormat枚舉類型,表示密文的輸出格式,可選值有:

"Base64" base64編碼格式 、 "Hex"十六進制編碼格式、 "String"直接轉換字符串格式;

 

hmacKey 類型:string,可選的,使用 MD5 哈希函數計算基於哈希值的消息驗證代碼 (HMAC),

此 HMAC 進程將密鑰與消息數據混合,使用哈希函數對混合結果進行哈希計算,將所得哈希值與該密鑰混合,而後再次應用哈希函數。輸出的哈希值長度爲 128 位。

 

示例:

 <script>
        var data = HashEncrypt.MD5("hello world!",false,false); //"hello world!".md5(false,false) //這行代碼上面的效果是一樣的結果  document.write(data); </script>

輸出結果:99da75326ffaf6acc0debe844b359894  

 

SHA1方法

這個方法的簽名和MD5方法的徹底一致的,在這裏就不重述了,哈哈哈。。

 

代碼下載:

源碼和方法演示

http://files.cnblogs.com/Jackson-Bruce/%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%93%88%E5%B8%8C%E5%8A%A0%E5%AF%86.zip

發佈版

http://files.cnblogs.com/Jackson-Bruce/HashEncrypt.min.js

 

相關資料:

http://pajhome.org.uk/crypt/md5

相關文章
相關標籤/搜索