【问题标题】:PasswordHash not working php CIPasswordHash 不工作 php CI
【发布时间】:2014-07-25 04:28:32
【问题描述】:

我按照教程http://dialect.ca/code/ci-simple-login-secure/ 但我遇到密码错误 当我输入密码时

M@ndiri%%321 and M@ndiri%%654 

无论如何,我的密码错误已被逆转.. 如果正则表达式有问题?

如何解决??..谢谢

【问题讨论】:

  • 你能分享一下正则表达式吗?
  • './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';

标签: php passwords password-hash


【解决方案1】:

根据上面显示的正则表达式,除了字母数字字符之外,您不应该有任何东西,但正如您所见,您的密码字符串中有一些特殊字符:)

上面的表达式也可以写成/([a-zA-Z0-9]+)/g。或者像这样/([[:alnum:]+])/g

如果您想添加特殊字符,请使用此/([ -~]+)/g。这将允许您使用(英文)字母数字和特殊字符。

如果您想允许字母数字和仅在您的评论中提到的特殊字符,请使用此/([a-zA-Z0-9%@#$]+)/g

如何在 PHP 中使用上述模式

$password = "aH8J9%3$%";
if(!preg_match("/^([a-zA-Z0-9%@#$]+)$/", $password)){
    echo "Invalid password!";
}

如何在 JavaScript 中使用它

var pattern = /^([a-zA-Z0-9%@#$]+)$/g;
var password = document.getElementById("password").value; // aH8J9%3$%
if(!pattern.test(password)){
    alert("Invalid password!");
}

【讨论】:

  • 如果要使用%和@#$..如何添加正则表达式?
  • @ArdyAnt 很高兴我能帮上忙。您能否将regex标签添加到您的答案中,因为这与它有关:)
  • 对不起,我添加了 /^(?=\S*?[A-Z])(?=\S*?[a-z])(?=\S*?[0-9])(? =\S*?[^\w*])\S{5,}$/ 但是读取密码还是有错误
  • @ArdyAnt 你从哪里得到这个 :) 为什么不使用上面显示的表达式之一。无论如何,让我检查一下 - 看起来很乱 :) 或者更好的方法,告诉我你想要什么样的模式,或者更好,我会给你我使用的模式。
  • 我按照本教程 github.com/DaBourz/SimpleLoginSecure/blob/master/phpass-0.3/… ..如何在第 35 行添加正则表达式
猜你喜欢
  • 2013-08-28
  • 2016-07-17
  • 2022-07-27
  • 2020-07-19
  • 1970-01-01
  • 2021-05-26
  • 2022-01-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多