繁体   English   中英

我可以在不使用 API 的情况下在 Wordpress 中创建盐键吗?

[英]Can I create salt keys in Wordpress without using the API?

我正在 python 中编写一个脚本,它可以帮助我创建一个带有自定义数据的标准wp-config.php文件,当涉及到盐键时,我当然可以生成一个 64 个字符的随机字符串,但我想知道盐是否必须是related each other, hence generated only using the Wordpress API ( https://api.wordpress.org/secret-key/1.1/salt/ ) or if I can just bloat any random string.

在这种情况下,我可以使用任何符号来生成它还是排除某些符号? 如果我只是删除盐键怎么办,Wordpress 会第一次重新生成吗?

你可以使用任何你想要的盐键:它们只是随机字符串,它们彼此不相关,所以任何随机字符串生成器都可以。

据我所知,盐中使用的字符没有限制

是的,这很容易。 我建议将 WordPress 用于生成盐的原始wp_generate_password() function 转换为 Python。 我在 bash 中做过同样的事情,看比较。

这是 PHP 中的原始 wp_generate_password() function WordPress 用于生成盐值:

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 );
    }
}

这是相同的wp_generate_password() function 重写为 bash

function wp_generate_password() {
  # Args
  local length="$(test $1 && echo $1 || echo 12 )"
  local special_chars="$(test $2 && echo $2 || echo 1 )"
  local extra_special_chars="$(test $3 && echo $3 || echo 0 )"

  chars='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
  [[ $special_chars != 0 ]] && chars="$chars"'!@#$%^&*()'
  [[ $extra_special_chars != 0 ]] && chars="$chars"'-_ []{}<>~`+=,.;:/?|'

  password='';
  for i in $(seq 1 $length); do
  password="${password}${chars:$(( RANDOM % ${#chars} )):1}"
  done

  echo "$password"
}

然后,您可以通过在 PHP 中运行wp_generate_password( 64, true, true )或在 bash 中运行wp_generate_password 64 1 1来生成盐值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM