最少6个字符的密码无效[rails 4]

我正在阅读带有Rails 4的敏捷Web开发书

在用户模型中,我具有不能少于6个字符的密码验证

validates :password_digest, length: {minimum: 6}

但是实际上,当我创建一个新用户时,它允许我使用少于6个的用户。有什么建议吗?

谢谢

忍者

简而言之-您正在验证错误的字段。用:password替换:password_digest。

validates :password, length: { minimum: 6 }

此处的解释更长一些:我已经打开一本书,并看了第14章(名为“任务I:登录”)。看起来您的用户表带有“名称”,“ password_digest”和“盐”列。书中的样本描述了如何对密码进行哈希处理,将其与盐混合以及将结果存储在数据库中。关键是-即使您从一个字母生成此密码,您的“ password_digest”也足够长。您可以在irb中自己尝试:

require 'digest'
Digest::SHA2.hexdigest('a') #=> "ca978112ca1bbdcafac231b39a2..."

因此,您不应该验证哈希密码的长度。相反,您应该验证“密码”属性本身。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

最少1个字符,最少4个字符,最多50个字符

当我拥有正确数量的字符时,为什么我的Rails应用返回“密码太短(最少6个字符)”?

2个字符后,将剩余的字符分成4个字符的组?

每4个字符分割字符串?

列出所有可能的随机3个字符或4个字符

正则表达式获取字符串的前6个和后4个字符

为什么sscanf跳过每个字符串的前4个字符?

将4个字符解释为整数

删除所有不是4个字符的数字

使用Linux删除少于4个字符的单词

解析其列少于4个字符的行

用“ *”代替最后4个字符

崇高:查找少于4个字符的单词

256个字符Twitter4J

输入3个字符以产生4个字母字符串

计算一个排列长4个字符且每个结果2个字符的排列

Swift 4中textField中前4个字符的子字符串

从 Bash 中的字符串中捕获前 4 个和最后 4 个字符?

如果长度为6个字符,如何在文本框中的第3个字符之后添加空格;如果长度为7个字符,如何在第4个字符之后添加空格

用sed(或awk)在最后一个字符之前删除4个字符

R将4个字符串合并为1个字符串

在8个字符后添加空格,然后每4个字符后添加空格

在加拿大邮政编码的第3个字符与第4个字符之间添加空格

JAVA CRC16函数返回3个字符的响应,而不是4个字符

使用所有可能的组合,以4个字长匹配3个字符

使用 strchr 在 c 中的 4 个字符串中搜索一个字符

RegEx为4个字符和7个数字。没有特殊字符

Lua在字符串中每4个字符插入一个值

计算字符串中被分成4个字符的字符