gpt4 book ai didi

validation - 验证Grails中的加密密码

转载 作者:行者123 更新时间:2023-12-02 14:47:11 25 4
gpt4 key购买 nike

在grails中,我可以将密码字段设置为最小大小限制为5(任意)。问题是我使用Spring Security服务对我的密码进行编码,并且无论我输入什么值,编码/加密的密码都比5个字符长得多。

另一个论坛答复建议在save方法中进行验证。还有其他人解决过这个问题并知道解决方法吗?

Spring Security不提供解码方法(可能出于安全目的)...所以我想一个主意是要获得一个可以对密码进行解码以用于验证目的的不同密码编码器...但是我的直觉是Spring Security会保留这种方法出于一个很好的理由,也许我也应该...

static constraints = {
username(blank: false, unique: true)
password(minSize: 5, blank: false, unique: true,
validator: { passwd, user ->
return passwd != user.username
})
passwordRepeat(nullable: false,
validator: { passwd2, user ->
return passwd2 == user.password
})
}

因此,我使用静态约束进行验证,因为大多数其他变量都是通过这种方式验证的。

对于无法理解的评论,我深表歉意。

谢谢,
-阿萨夫

编辑:我认为一个简单的修复方法如上所述,可以在save方法中进行验证(在加密之前),但是我只是觉得某个地方的某个人之前必须已经处理过此问题。我的意思是,有太多需要密码的网站,如果密码太短,如果它既不包含小写字母又包含大写字母,没有符号,就会大吼大叫。他们使用的验证方法?

最佳答案

您无法解码Spring Security编码的内容……是md5或sha-256 !!!这正是加密过程的目的。然后,即使数据库文件被盗,您也不知道密码是什么

要验证密码,您需要提示用户输入一个清晰的密码(请在https中传输),然后使用相同的算法对其进行编码。然后,您必须将其与您存储的编码密码进行比较

使用DigestUtils类使用与第一次使用的相同算法对收到的密码进行编码。这是一个Spring Security Config grails.plugins.springsecurity.password.algorithm
是的,您必须在保存之前进行验证...为此,我们在Bootstrap中添加了一个元类

String.metaClass.validateAsPassword

在保存密码之前有一个独特的验证点

关于validation - 验证Grails中的加密密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6063475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com