Javascript 多个密码

Javascript 多个密码,javascript,Javascript,你好。 我正在使用“pasuser表单”作为网站页面的密码保护剂。 下面的脚本只允许使用一个密码和用户名。 有人知道如何更改多个密码/用户名使用的脚本吗?基本上,我希望每个用户都有自己唯一的密码/用户名。 非常感谢您的时间和帮助 function pasuser(form) { if (form.id.value != "user") return alert("Invalid UserID"); if (form.pass.value != "pass") return alert("Inv

你好。 我正在使用“pasuser表单”作为网站页面的密码保护剂。 下面的脚本只允许使用一个密码和用户名。 有人知道如何更改多个密码/用户名使用的脚本吗?基本上,我希望每个用户都有自己唯一的密码/用户名。 非常感谢您的时间和帮助

function pasuser(form) {

if (form.id.value != "user") return alert("Invalid UserID");
if (form.pass.value != "pass") return alert("Invalid Password");
location = "http://tempuri.org/";
}

客户端代码中的密码保护是愚蠢的,但该原则可能对其他方面有用

将用户名和密码放在一个数组中,并循环遍历以下项目:

var pass = [
  { user: 'ebby', pwd: 'john3' },
  { user: 'john', pwd: 'kate4' },
  { user: 'kate', pwd: 'ebby1' }
];
// look for a match
var found = false;
for (var i = 0; i < pass.length; i++) {
  if (form.id.value == pass[i].user && form.pass.value == pass[i].pwd) {
    found = true;
    break; // exit from loop
  }
}
// act on the result
if (found) {
  location = "http://tempuri.org/";
} else {
  alert('User name or password is wrong.');
}
var pass=[
{用户:'ebby',pwd:'john3'},
{用户:'john',pwd:'kate4'},
{用户:'kate',pwd:'ebby1'}
];
//找一根火柴
var=false;
对于(变量i=0;i

注意:通常不告诉访问者用户名是否正确。登录过程不应用于确定是否存在特定用户。(当用户名和密码在页面源中清晰可见时并不重要,但无论如何…

设置cookies并在身份验证期间获取它们。客户端无法查看Cookie中的内容。但是使用php会更好。

你是认真的吗?您正在将密码放入客户端脚本?看起来这应该是您的网页的一个简单的网关守卫。这是非常不可取的,因为任何人都可以阅读。相反,您可以使用简单的HTTP基本身份验证来输入由web服务器管理的服务器端密码。请学习一些关于AJAX的知识,并发送用户名和密码在服务器端进行验证,就像这样,您向所有用户显示了正确的名称和密码!在客户端脚本上检查密码不安全。任何人都可以阅读客户端代码——浏览器有一个“查看源代码”选项。这样他们就知道输入哪个密码了。安全的方法需要对照键入密码的人无法访问的存储区检查密码。一种方法是将用户/密码对发送到服务器,然后服务器根据其密码数据库检查该对。这称为身份验证。你可能想读它。如果你真的想这么做,至少要考虑破解密码。有许多Javascript库可以进行哈希运算,如果可用,许多库可以使用浏览器的内置实现。这不会保护您受保护的资源(因为URL是纯文本),但至少不会泄露用户密码。客户端不能查看cookie吗?我可以!使用safari:preferences->privacy->Cookie(我不记得接下来会发生什么。我相信这类似于“管理Cookie…”)。@11684,也许他的意思是会话?会话是Cookie(虽然生命周期很短),因此可见@是的,但是会话的数据保存在服务器上;客户端无法查看会话中的内容。真的吗?我不知道,这太没效率了。(O(n))使用一个散列,它使您接近O(1):
var pass={ebby:'john3',john:'kate3',…}
,然后你可以只做
如果(传递[user]==suppliedPassword).
@josh3736:是的,这可以做得更有效,但我想几乎没有人会注意到区别。在需要提高效率之前,代码不是低效的。区别在于只有100项。@josh3736:不,不是。我只是试了10000件,我几乎没有注意到任何延迟。我不是落选者,但我是对的。您的方法会慢一个数量级或更多。而且代码更长。你不可能真的为一个两败俱伤的主张而争论。