簡體   English   中英

如何在javascript中使用MD5傳輸密碼

[英]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://code.google.com/p/crypto-js/

您可能想查看此頁面: 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM