JS 密碼加密

    首先需要注意的一點是,密碼的加密應該是在頁面完成的,因爲傳輸的過程中,密碼明文有可能會泄露出去。
然後要說明的就是,雖然在頁面加密密碼,加密算法暴露了,但是有些加密算法,比如MD5,即使知道加密算法,知道密文也很難得出明文是什麼。
    MD5是使用散列函數進行密碼加密的,加密是單向的,如果不是兩段相同的明文,結果很難一致。
    網上有MD5的解密工具,但是那種工具一般都是查字典出來的,也就是說那種工具會在後臺進行查找,如果它的數據庫裏沒有明文,它需要重新計算來得到明文。
    與此同時,可以使用兩次或多次MD5加密的方式提高安全性。

Crypto下載地址:https://code.google.com/archive/p/crypto-js/downloads
Crypto的API:https://code.google.com/archive/p/crypto-js/
實例代碼:

<!DOCTYPE>
<html>
    <head>
        <meta charset="UTF-8"/>
        <title></title>
        <script src="./md5.js"></script>
        <script >
            function escape(){
                var code = CryptoJS.MD5(mainText.value);
                var tmpdiv = document.createElement("div");
                tmpdiv.innerHTML="\""+mainText.value+"\"" + "&emsp;&emsp;&emsp;&emsp;"+code;
                document.getElementById("main").appendChild(tmpdiv);
            }
        </script>
    </head>
    <body id="main">
        <input id="mainText" />
        <button onclick="escape()" type="button" >test</button>
    </body>
</html>

補充:我一開始懷疑過MD5的安全性,所以做了一下實驗:
加密:
編碼信息
test:
這裏寫圖片描述
123456Seven
這裏寫圖片描述
yufeng0023
這裏寫圖片描述
yufeng0023.23
這裏寫圖片描述
修改一個字符帶來的差異:

"yufeng0023.23"    5f8a31f74a397f629da7d9815474aeb0
"yufeng0023.2"    071730528ffbae37516fc053cfe9ff77
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章