[英]How to Use MD5 Hash for securing Login passwords in JSP with Javascript?
[英]How to use MD5 in javascript to transmit a password
我有一個 jquery 對話框模式框彈出來登錄我的網站。 當用戶單擊登錄時,它會向 login.php 文件發出一個 post 請求,如下所示:
$.post(
'includes/login.php',
{ user: username, pass: password },
onLogin,
'json' );
在將其放入發布請求之前,如何對該密碼進行 md5 處理? 另外,我使用 MD5() 將用戶的密碼存儲在 MySQL 數據庫中,因此我只想將存儲的密碼版本與提交的密碼的 MD5 進行比較。 感謝任何回復的人。
crypto-js是一個豐富的 javascript 庫,包含許多加密算法。
你所要做的就是調用CryptoJS.MD5(password)
$.post(
'includes/login.php',
{ user: username, pass: CryptoJS.MD5(password) },
onLogin,
'json' );
如果有人正在嗅探您的純文本 HTTP 流量(或緩存/cookies)以獲取密碼,那么將密碼轉換為散列將無濟於事 - 散列密碼可以像純文本一樣“重播”。 客戶端需要使用一些隨機的東西(如日期和時間)散列密碼,請參閱此處的“AUTH CRAM-MD5”部分: http : //www.fehcom.de/qmail/smtpauth.html
在這種情況下,我建議您使用 CryptoJS。
基本上,CryptoJS 是使用最佳實踐和模式在 JavaScript 中實現的標准和安全加密算法的不斷增長的集合。 它們速度很快,並且具有一致且簡單的界面。
因此,如果您想計算密碼字符串的哈希(MD5),請執行以下操作:
<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/rollups/md5.js"></script>
<script>
var passhash = CryptoJS.MD5(password).toString();
$.post(
'includes/login.php',
{ user: username, pass: passhash },
onLogin,
'json' );
</script>
因此,此腳本會將您的密碼字符串的哈希值發布到服務器。
有關其他哈希計算算法的更多信息和支持,您可以訪問:
您可能想查看此頁面: http : //pajhome.org.uk/crypt/md5/
但是,如果保護密碼很重要,那么您確實應該使用 SHA256 之類的東西(MD5 不是加密安全的 iirc)。 更重要的是,您可能需要考慮使用 TLS 並獲取證書,以便您可以使用 https。
回應 jt。 你是對的,只有密碼的 HTML 很容易受到中間人攻擊。 但是,您可以使用來自服務器的 GUID 為其播種...
$.post(
'includes/login.php',
{ user: username, pass: $.md5(password + GUID) },
onLogin,
'json' );
這將擊敗中間人......因為服務器將為每次嘗試生成一個新的 GUID。
如果您使用的是 php jquery,這可能會有所幫助:
$.ajax({
url:'phpmd5file.php',
data:{'mypassword',mypassword},
dataType:"json",
method:"POST",
success:function(mymd5password){
alert(mymd5password);
}
});
在您的 phpmd5.php 文件中:
echo json_encode($_POST["mypassword"]);
不需要jsplugins。 只需使用 ajax 並讓 php md5() 完成這項工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.