»

WordPress系统中随机密码生成函数的再利用

    WordPress  
爬虫CLB工作查询ApacheIISWP Rocket前端访问网络安全网站优化htaccesscookies插件缓存CDN访客WordPress插件网站镜像浏览器建站windows主机百度云加速数据库伪静态

在 WordPress 系统中,新用户注册或者用户更改密码时,会随机生成一串字符串,这个函数是 WordPress 系统自带的,那么它位于哪个位置,怎样写的代码呢?

这个函数位于系统 /wp-includes/文件夹的 pluggable.php 文件内,代码如下:

  1. function wp_generate_password( $length = 12, $special_chars = true, $extra_special_chars = false ) {  
  2.     $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';  
  3.     if ( $special_chars )  
  4.         $chars .= '!@#$%^&*()';  
  5.     if ( $extra_special_chars )  
  6.         $chars .= '-_ []{}<>~`+=,.;:/?|';  
  7.   
  8.     $password = '';  
  9.     for ( $i = 0; $i < $length$i++ ) {  
  10.         $password .= substr($chars, wp_rand(0, strlen($chars) - 1), 1);  
  11.     }  
  12.     return apply_filters( 'random_password', $password );  
  13. }  

 

根据WordPress文档介绍,这个函数有三个参数:

  • $length:要生成的随机字符的长度,默认为:12,
  • $special_chars:字符串中是否包含特殊字符,例如:!@#$%^&*()。这个参数默认是是 true,如果你不想引入这些特殊字符,可以将其设置为false。
  • $extra_special_chars:字符串中是否包含一些更特殊的字符,例如:-_ []{}<>~`+=,.;:/?|,一般这个参数用于生成 secret key 的时候使用。默认是 false。

看到这里,我们是不是可以收拾收拾为自己所用呢?

将上述代码稍微修改一下即可:

  1.     /** 
  2.      * Randomly-generated password. 
  3.      * 
  4.      * /wp-includes/pluggable.php 
  5.      */  
  6. function wp_generate_password( $length = 12, $special_chars = true, $extra_special_chars = false ) {  
  7.     $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';  
  8.     if ( $special_chars )  
  9.         $chars .= '!@#$%^&*()';  
  10.     if ( $extra_special_chars )  
  11.         $chars .= '-_ []{}<>~`+=,.;:/?|';  
  12.   
  13.     $password = '';  
  14.     for ( $i = 0; $i < $length$i++ ) {  
  15.         $password .= substr($chars, rand(0, strlen($chars) - 1), 1);  
  16.     }  
  17.     return $password;  
  18. }  

 

如果你想随机生成字符串,可以将上述代码放到主题的 functions.php 之中,然后在主题中进行引用。例如:

本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利

  1. <?php echo 'New password: ' . wp_generate_password(); ?>  

 

或者将其进一步简化然后进行引用:

  1.     /** 
  2.      * Randomly-generated password. 
  3.      * 
  4.      * /wp-includes/pluggable.php 
  5.      */  
  6. function wp_generate_password( $length = 12, $special_chars = true, $extra_special_chars = false ) {  
  7.     $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';  
  8.   
  9.     $password = '';  
  10.     for ( $i = 0; $i < $length$i++ ) {  
  11.         $password .= substr($chars, rand(0, strlen($chars) - 1), 1);  
  12.     }  
  13.     return $password;  
  14. }  

 

本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利

代码下载:百度网盘链接: pan.baidu.com/s/1hrHSjMO 密码: vrw2

时光在路上扫码阅读、分享
  • 版权声明:该文章由 时光在路上 发表,共 2117字。除非特别标注来源,否则为原创。详见《版权声明》部分。
  • 转载请注明:文章标题和文章链接 - 时光在路上 - 也可直接“复制本文链接” 或 使用右边二维码分享本文 →