使用微软Visual Studio 2010,确认当前密码,新密码并确认新密码
基本上我有3个文本框,做3层编程。
该文本框是当前密码,新密码和确认密码。
我可以知道我应该使用哪一个验证器来验证是:
1)用户已经输入当前的密码,以便他们可以按按钮提交。
2)用户可以选择是否要输入新密码,如果他们输入新密码,密码应超过6个字符(不能使用特殊字符,如[email protected]#$%^&*())
。如果他们输入新密码,确认密码场需要输入,并用新的密码进行比较,然后才能按下按钮提交
使用微软Visual Studio 2010,确认当前密码,新密码并确认新密码
基本上我有3个文本框,做3层编程。
该文本框是当前密码,新密码和确认密码。
我可以知道我应该使用哪一个验证器来验证是:
1)用户已经输入当前的密码,以便他们可以按按钮提交。
2)用户可以选择是否要输入新密码,如果他们输入新密码,密码应超过6个字符(不能使用特殊字符,如[email protected]#$%^&*())
。如果他们输入新密码,确认密码场需要输入,并用新的密码进行比较,然后才能按下按钮提交
TLDR:。 使用ASP.NET成员控制来管理您的密码,然后添加一个JavaScript函数来验证你的数据
密码是敏感数据,黑客总会试图窃取它们,所以程序员h大家找到了防止这种情况的方法。
http://www.codinghorror.com/blog/2007/09/rainbow-hash-cracking.html
http://www.securityfocus.com/blogs/262
如果你没有看过这些,有两个要点:
- 用户输入的不实际的口令存储:存储哈希值。散列是将输入字符串转换为不同输出的加密函数。这是一种单向转换:没有算法可以取得一个散列并将其转回到它的输入中,但相同的输入始终会产生相同的输出。 (这些文章描述了黑客用来尝试查找原始输入的聪明方法,以及防止黑客执行这些聪明事情的方法)。另外,不要将MD5用作散列机制。
- 密码学和安全性非常复杂,所以通常最好使用别人的代码。
ASP.NET附带了各种会员控制,可以为您执行密码管理和散列操作。您可以了解更多关于他们在这里:
http://msdn.microsoft.com/en-us/library/ms178329(v=vs.100).aspx
基本上,.NET将建立自己的登录/忘记密码/修改密码/创建用户页面为您服务。你不需要担心哈希或彩虹表或类似的东西,因为微软为你编写了所有的代码。
关于您关于客户端大小验证的问题,您需要做一些JavaScript。您可以在用户点击“提交”按钮时添加OnClientClick="return validate();"
来调用JavaScript函数。然后您需要创建一个validate()
函数(只要您更改OnClientClick
的值,函数也可以重命名)。这个功能应该有所帮助:
function validate()
{
if($("#<%= PasswordControl1.ClientID %>").val() != $("#<%= PasswordControl2.ClientID %>").val())
{
alert("Your passwords don't match. Please enter them again.");
return false;
}
if($("#<%= PasswordControl1.ClientID %>").val().length < 6)
{
alert("Your password is too short. Please use a longer password.");
return false;
}
// use similar function to test for illegal characters in the password, but most sites will let you enter whatever characters you want (# . ! etc...)
document.forms[0].submit();
}
一个'CustomValidator'会给你很好的灵活性 – Matthew
不允许“特殊字符”中的密码提出了一个大红旗我。你是不是真的以纯文本存储密码是你? –
我试过字段和表达式验证器。试图找出如何使用自定义验证程序,但我不太明白它是什么关于 – user1861753