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


摘要

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

 

HashEncrypt加密對象

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

屬性

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

方法

MD5方法

HashEncrypt.MD5(string,ascii,hexUpperCase )

 

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

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

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

 

HashEncrypt.MD5(string,base64Pad,ascii )

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM