首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Zotonic中执行密码复杂性规则?

如何在Zotonic中执行密码复杂性规则?
EN

Stack Overflow用户
提问于 2010-10-05 14:57:52
回答 2查看 269关注 0票数 0

我想在Zotonic中执行密码策略。我的第一印象是作为身份编辑器中的new_password字段上的验证器来完成这个任务。

下面是一个策略示例:

character

  • Not
  • 至少有8个字符长度
  • 至少有一个大写字母
  • 至少有一个小写字母
  • 至少有一个数字

H 110至少有一个基于帐户名H 213F 214的非字母数字>

以下是一个可能的实现(未经测试):

代码语言:javascript
复制
string:length(Password) >= 8 andalso
re:run(Password, "[A-Z]") =/= nomatch andalso
re:run(Password, "[a-z]") =/= nomatch andalso
re:run(Password, "[0-9]") =/= nomatch andalso
re:run(Password, "[^A-Za-z0-9]") =/= nomatch andalso
re:run(Password, AccountName) =:= nomatch

如何在Zotonic中执行密码复杂性规则?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-05 17:35:57

您可以做的是将其实现为表单验证。按照其他认证的思路。

我想知道是否有一个可以显示密码强度的javascript。(就像一个红绿灯,绿色没问题,红色真的不行。)

可以使用{% validate %} scomp附加验证。

可以通过创建单个正则表达式并使用format验证器http://zotonic.com/documentation/634/format将其附加到密码字段来完成简单的密码检查。

对于您建议的功能,或“交通灯”功能,最好是制作一个自定义验证器。或者,我们添加了对LiveValidation的自定义验证器的支持,然后将一个Javascript函数传递给该函数进行检查。

票数 1
EN

Stack Overflow用户

发布于 2010-10-06 14:37:13

我的同事向我指出:

代码语言:javascript
复制
^.*(?=.{10,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$

可以从http://davidhayden.com/blog/dave/archive/2004/09/25/501.aspx的原始作者那里获得完整的解释。

它在Zotonic中使用时有一个小错误(可能是由于re模块中的奇怪之处),所以我将\d改为[0-9],并将所需的长度减少到8:

代码语言:javascript
复制
^.*(?=.{8,})(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$

它可以通过替换_action_dialog_set_username_password.tpl存在验证器在中应用:

代码语言:javascript
复制
{% validate id="new_password" type={presence} %}

使用格式的验证器,如Marc WHow do you enforce password complexity rules in Zotonic?中描述的那样

代码语言:javascript
复制
{% validate id="new_password" type={format pattern="^.*(?=.{8,})(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$"} %}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3864903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档