代码之家  ›  专栏  ›  技术社区  ›  adhanlon

如何在javascript中使用MD5传输密码

  •  22
  • adhanlon  · 技术社区  · 15 年前

    $.post(
          'includes/login.php', 
          { user: username, pass: password },
          onLogin, 
          'json' );
    

    在将该密码放入post请求之前,如何对其执行md5操作?此外,我使用MD5()将用户密码存储在MySQL数据库中,因此我只想将存储的密码版本与提交的密码的MD5进行比较。感谢所有回复的人。

    6 回复  |  直到 14 年前
        1
  •  30
  •   Shaharyar    10 年前

    crypto-js 是一个包含许多加密算法的丰富javascript库。

    CryptoJS.MD5(password)

    $.post(
      'includes/login.php', 
      { user: username, pass: CryptoJS.MD5(password) },
      onLogin, 
      'json' );
    
        2
  •  28
  •   jt.    15 年前

    如果有人在嗅探你的明文HTTP通信(或缓存/cookie)中的密码,仅仅将密码转换为哈希将没有帮助-哈希密码可以像明文一样“重放”。客户端需要用一些随机的东西(比如日期和时间)散列密码 请参见此处的“AUTH CRAM-MD5”部分: http://www.fehcom.de/qmail/smtpauth.html

        3
  •  16
  •   theCodeMachine    12 年前

    基本上,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/

        4
  •  4
  •   SapphireSun    15 年前

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

    但是,如果保护密码很重要,那么应该真正使用SHA256(MD5不是加密安全的iirc)。更重要的是,您可能需要考虑使用TLS并获得证书,以便可以使用HTTPS。

        5
  •  2
  •   James    13 年前

    回应jt。你是正确的,只有密码的HTML容易受到中间人攻击。但是,您可以使用服务器上的GUID为其种子。。。

    $.post(
      'includes/login.php', 
      { user: username, pass: $.md5(password + GUID) },
       onLogin, 
      'json' );
    

    这会打败中间的人。。。在这种情况下,服务器将为每次尝试生成一个新的GUID。

        6
  •  0
  •   fritz fritz Fritz    7 年前

    如果您使用的是php jquery,这可能会有所帮助:

       $.ajax({
            url:'phpmd5file.php',
            data:{'mypassword',mypassword},
            dataType:"json",
            method:"POST",
            success:function(mymd5password){
                alert(mymd5password);
            }
        });
    

    echo json_编码($_POST[“mypassword”]);