JS简单但安全登录?

时间:2017-01-02 19:41:14

标签: javascript

这是我到目前为止用于验证表单的代码:

<input type="text" id="usr"/>
<input type="password" id="pwd"/>

脚本:

if (usr.value == "blablahusername") {
 if (pwd.value == "blahblahpassword") {
  //do stuffs
 }
}

此代码有效,但它不安全,因为您只需要检查元素(Chrome)以查找密码。所以,我正在寻找一种不复杂,更安全的方法。

编辑:〜问题非常缺乏信息,我试图删除它〜

1 个答案:

答案 0 :(得分:-2)

为了获得良好的安全性,您可以使用某种哈希算法。 SHA-1基本上是不错的安全标准,你可以用它来转换客户端的东西。

考虑以下代码:

&#13;
&#13;
String.prototype.hashCode = function() {
  var hash = 0, i, chr, len;
  if (this.length === 0) return hash;
  for (i = 0, len = this.length; i < len; i++) {
    chr   = this.charCodeAt(i);
    hash  = ((hash << 5) - hash) + chr;
    hash |= 0; // Convert to 32bit integer
  }
  return hash;
};
$(function () {
  var username = "admin";
  var password = "68170072";
  $("#check").click(function () {
    if ($("#username").val() == "admin" && $("#password").val().hashCode() == password)
      alert("Perfect");
    else
      alert("Wrong");
    return false;
  });
});
&#13;
* {font-family: monospace;}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Username: <input type="text" id="username" /><br />
Password: <input type="password" id="password" /><br />
<a href="#" id="check">Check</a>
<p>Username: admin, Password: letmein</p>
&#13;
&#13;
&#13;

我在这里使用了sha1。我们可以在这里使用任何不错的算法。

  

注意:实施在Stack Snippets中效果不佳。但这是关键。

  1. 拿盐。
  2. 使用salt将密码转换为哈希。
  3. 以上文字为单向转换。
  4. 以最终形式制作副本并嵌入页面。
  5. 只有当正确的密码经过整个过程时,它才会转换为散列。
  6. 将散列与保存的密码进行比较。
  7. 只需几分钱。

    看到类似的东西:Generate a Hash from string in Javascript/jQuery