我的项目中有一个登录表单,它接受用户名和密码进行验证并继续前进。以区分大小写的方式验证密码
我正在使用SQL Server作为后端。最初在我的登录页面中,如果我输入密码或小写,它会验证我的登录页面并继续执行项目。但是现在我想添加区分大小写的密码验证到我的密码文本框,以便它匹配数据库中密码字符的确切顺序。
如何将此验证添加到密码字段。可以将它添加到登录表单或SQL Server中吗?
我的项目中有一个登录表单,它接受用户名和密码进行验证并继续前进。以区分大小写的方式验证密码
我正在使用SQL Server作为后端。最初在我的登录页面中,如果我输入密码或小写,它会验证我的登录页面并继续执行项目。但是现在我想添加区分大小写的密码验证到我的密码文本框,以便它匹配数据库中密码字符的确切顺序。
如何将此验证添加到密码字段。可以将它添加到登录表单或SQL Server中吗?
您可以使用正则表达式
^(?=(.*\d){2})(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z\d]).{8,}$
--------- --------------------- --------------- -----
| | | |->match 8 or more characters
| | |->match further only if theres anything except letter or digit
| |->match further only if there is an upper-lower case letter
|
|->match further only if there are two digits any
where
我不知道这是一个笑话还是一个错误的问题 – testydonkey
没有什么特别的事,但是你一定要避免:
要做到这一点的一种方法是将帐户中最后一次密码更改的日期(例如64位整数)与散列一起存储(类似于SHA1应该是合理的)。当用户连接时,表单会被赋予一个数字(称为'salt'),表单会将键入的密码打包(使用UTF8等预定义编码),然后生成一个散列表,并将其发送到以base64为例(我的意思是你的密码字段可能只是一个包含base64编码散列的文本字段)。如果与服务器(数据库或应用程序)的通信受到保护,则密码可以通过线路传输没有问题。服务器比较这两个哈希值,如果它们匹配,那么就可以。
盐的原因是根据预先构建的MD5或SHA哈希码与您的密码数据库(如果恰巧是由黑客下载的)相匹配的字典,大大减缓了攻击速度。如果连接可以被黑客读取,它也会有所帮助,因为相同的预先建立的字典攻击可以在MD5哈希上传播。
正如其他人所说的,将密码存储为纯文本并不是一种好的做法。如果这就是你要求做的,
if(StringA == StringB)
本身在C#中区分大小写。
你如何验证你的密码字段? –
密码是如何存储的,您是否计算了散列? – martinstoeckli
密码字段使用存储在数据库中的数据进行验证。密码字段上未添加其他验证。 @Dhaval Patel –