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

adh*_*lon 23 javascript passwords jquery post md5

我弹出一个jquery对话框模式框,用于登录我的网站.当用户单击login时,它会对login.php文件发出post请求,如下所示:

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

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

Jam*_*ore 30

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

你所要做的就是打电话 CryptoJS.MD5(password)

$.post(
  'includes/login.php', 
  { user: username, pass: CryptoJS.MD5(password) },
  onLogin, 
  'json' );
Run Code Online (Sandbox Code Playgroud)

  • 此插件由于某种原因不再可用.这里有一个版本:http://www.richardpeacock.com/dev/files/jquery.md5.js.txt (12认同)
  • 您应该使用更加标准的http://code.google.com/p/crypto-js/ crypto-js,并将JS包含在您需要的加密中. (5认同)
  • 我认为这个答案需要一些爱护和关注,因为链接的插件现在似乎不可用. (2认同)

小智 29

如果有人嗅探您的纯文本HTTP流量(或缓存/ cookie)密码只是将密码转换为哈希将无济于事 - 哈希密码可以像普通文本一样"重放".客户端需要使用某些随机的东西(如日期和时间)来散列密码.请参阅此处的"AUTH CRAM-MD5"部分:http: //www.fehcom.de/qmail/smtpauth.html

  • +1是解释这不安全的唯一答案. (5认同)

the*_*ine 17

我建议你在这种情况下使用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>
Run Code Online (Sandbox Code Playgroud)

因此,此脚本会将密码字符串的哈希值发布到服务器.

有关其他哈希计算算法的更多信息和支持,您可以访问:

http://code.google.com/p/crypto-js/


Sap*_*Sun 5

您可以查看此页面:http://pajhome.org.uk/crypt/md5/

但是,如果保护密码很重要,那么你应该使用像SHA256这样的东西(MD5不是加密安全的iirc).更重要的是,您可能需要考虑使用TLS并获取证书,以便您可以使用https.