为什么生成的密码以空格开头/结尾?

时间:2012-09-13 作者:mrpatg

当为新用户生成新密码时,一些用户报告密码的开头和结尾都包含空格。以前有没有人遇到过这种情况,或者知道为什么会发生这种情况?这方面的潜在问题是什么?如何避免这些问题?

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

如果wp_generate_password() 使用第三个参数调用$extra_special_chars = true 空格可能是密码的一部分:

function wp_generate_password( $length = 12, $special_chars = true, $extra_special_chars = false ) {
    $chars = \'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\';
    if ( $special_chars )
        $chars .= \'!@#$%^&*()\';
    if ( $extra_special_chars )
        $chars .= \'-_ []{}<>~`+=,.;:/?|\';

    $password = \'\';
    for ( $i = 0; $i < $length; $i++ ) {
        $password .= substr($chars, wp_rand(0, strlen($chars) - 1), 1);
    }

    // random_password filter was previously in random_password function which was deprecated
    return apply_filters(\'random_password\', $password);
}
spaces还可以通过其他三种方式进入密码:

电子邮件客户端对邮件应用了一些不正确的格式在所有已安装的插件中搜索密码。询问您的用户他们使用的是什么电子邮件客户端。要防止WP生成的密码前后出现空格,请添加筛选器:

add_filter( \'random_password\', \'trim\' );
请注意,默认情况下,WordPress不会向用户发送带有空格的密码。可能还涉及其他一些代码。

结束

相关推荐

Is_password_tected()有主题函数吗?

我正在查看函数和模板引用,没有找到测试帖子是否受保护的方法。是否有(类似的)主题功能is_password_protected()?我已经在使用add_filter( \'the_password_form\', \'custom_password_form\' ); 覆盖显示的默认表单,但我想自定义帖子受密码保护时的其他一些外观。