【问题标题】:Joomla change password formJoomla 更改密码表格
【发布时间】:2015-06-30 18:58:53
【问题描述】:

我正在尝试在 Joomla 中开发个人资料表单,以便用户可以更新他们的信息 - 包括更改他们的密码。

但是,如下例所示,点只是超出了字段中的可见字符串。有没有办法可以显示用户密码的正确点数?例如,密码为 8 个字符的用户:

<form>
  <input type="password" name="psw" value="********">
</form>

<form>
  <input type="password" name="psw" placeholder="********">
</form>

我将输入字段填充为:

PS 我知道在this question 中识别密码长度。但是,对于网站类型的哈希/加盐,这是可以接受的

【问题讨论】:

  • 为什么不直接从核心配置文件页面复制代码? ` ` 占位符和值都不是你想要的。

标签: html forms joomla change-password


【解决方案1】:

略微更新以合并 cmets。

在第一个示例中(使用“值”),如果保存表单,您正在做的是将密码的实际值设置为一系列“*”。然后 Joomla 密码字段正在做它所做的事情,即混淆新密码。

我不知道您是否可以使用占位符来表示该字段具有值(尽管未显示该值)。如果是这样,占位符将类似于“输入新密码”。当用户键入密码时,密码将被自动混淆。但是,如果密码已经存在,则该字段将不会呈现占位符或值。

据我所知,您正在谈论编辑个人资料,在这种情况下,存在现有密码。

Joomla 密码字段从不在设置后显示原始密码,它只是为用户提供了一个空白区域,以便在需要时更改密码。如果用户正在更改他们的密码,他们应该只看到一个空字段,然后他们键入的每个字符对应一个点。密码字段无法显示现有密码,因为它在数据库中进行了哈希处理。该字段无法检索实际密码,只能检索哈希密码。获取真实密码的唯一方法是让用户输入。

你没有说$pass 来自哪里,但如果你从数据库中提取它,它是散列值,然后它会在保存时被双重散列。

真的有充分的理由不使用 Joomla 个人资料编辑表单吗?或者如果没有只是复制和修改它?

【讨论】:

  • 非常感谢 - 在 Joomla 个人资料编辑表单中,是否可以仅显示用户密码中的一定数量的点?目前我们有上面的截图,即使底层密码只是'pass'
  • 好的,我认为您不了解密码的存储方式。密码由 bcrypt 散列存储,并且所有密码都存储相同的长度。如果您要显示密码,它不会是“通过”,而是它的 bcrypt 哈希。因此它会很长。出于多种原因,您不想显示它。当您打开配置文件时,它应该提供一个空白字段,并且只有在输入新内容时才会更新。
  • 嗨,Elin,我知道对密码进行散列/加盐处理,但我想说的是如何捕获字符串长度(例如 strlen($pass))并使用该值填充正确的点数匹配
  • 您不需要这样做,密码字段会在您键入时自动将字符替换为混淆字符。您事先不知道用户要输入多少个字符。
猜你喜欢
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-08
  • 2012-05-12
  • 1970-01-01
相关资源
最近更新 更多