如果大家都能帮助我解决这个问题,我将非常感谢: 我试图找出一种方法来确定用户是否需要更新密码。以前对我们的用户密码之一的强度没有要求,但是现在我的(假)公司正在更改此密码(只是自我教育自己的乐趣)。我们希望用户在密码中至少包含1个符号,数字和大写字母。我们只想要一个不满足这些要求的用户电子邮件列表。如何过滤出符合要求的密码? (老实说,我不知道从哪里开始)
我想到的是使用ascii数字来确定密码是否有效,这对我来说很容易用python或c ++进行,但是当涉及到sql时,我真是太丢了...
users
-----------
id
Title
First_Name
Last_Name
Email
Roles
Password
答案 0 :(得分:1)
您无法获得此类条件的列表。
主要原因是您不应存储用户的原始密码。没有原始密码,您将无法应用此类过滤器。
如果您真的想自学,做到这一点的方法是让所有用户都更新他们的密码,那么您可以添加正则表达式模式或使他们按照自己的意愿进行操作的东西。
这是我的数据库示例之一,因为您可以看到使用MD5哈希机制对所有密码进行了加密和哈希处理。
答案 1 :(得分:0)
我认为可以使用not like
并检查约束,如下所示。数字,大写,然后是特殊字符
select Email from users where
password not like '%[0-9]%'
and password not like '%[A-Z]%'
and password not like '%[!@#$%a^&*()-_+=.,;:~]%'
正如Roshana所说,最好不要在原始文本中存储任何密码。那可能是一个巨大的安全问题。