WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am in need of a function that automatically generates and returns salts for Wordpress wp-config.php (Don't link me to their API, I'm looking for offline solution).

Does Wordpress core has this function defined somewhere? If it doesn't, can these salts be generated randomly or are there any specific rules for creating them?

Edit: This is what I ended up with:

    $keys = array('AUTH_KEY', 'SECURE_AUTH_KEY', 'LOGGED_IN_KEY',
    $salts = '';
    foreach ($keys as $key) {
        $salt = wp_generate_password(64, true, true);
        $spaces = str_repeat(' ',16 - strlen($key));
        $salts .= "define('{$key}',{$spaces}'{$salt}');\n";

And the output is string:

define('AUTH_KEY',        'f@5^8(OyZLS%+~LNQ6,w(Zpn`3X#A}o4t2LQuqc=x4vn+ b}xYM>TlSwB`|E;}PA');
define('SECURE_AUTH_KEY', 'vEEF@-c_`VO!d{s)_Nv^uS,)eg9{;60.$nU370/9E1z}O#iu)wkPrw8sh[TqGdC;');
define('LOGGED_IN_KEY',   '9:z95.y<_LhUnGlH>6%)/-szx8Dwj{z`#mz-C%taXoD:KK86k(?K-f{w]U5w(41v');
define('NONCE_KEY',       '?YP2djRHOn7[4n[p(KwmX#u.#^s3Fel%AKu@Ac,(L$1DM^@6NNk@x&B/w2/<an:@');
define('AUTH_SALT',       '$r>m{8@l?xDv<^uNz^.|<Am2}J3q(OMAS<dLB({66M)zy2ufOP8$x*{:US|7PL4x');
define('LOGGED_IN_SALT',  'YLiGuP$DPKP-F3UGw(0#E0L1w;HO0L_Hkt6.(*92t*B6Mclq*`{OO[xM$3)]^9yi');
define('NONCE_SALT',      '{hh3bpLu$b:e8-uXiCx(3FaK3Q4[`/Mji}~<.cz8W#_a0[O!{h;Fm{^c]p>./RF{');
share|improve this question
A random string generator should do the job. – Geert Jul 30 '12 at 17:51
up vote 4 down vote accepted

Does Wordpress core has this function defined somewhere?

While I haven't used it, you are probably looking for wp_salt or wp_generate_password. wp_salt is located in wp-includes/pluggable.php.

can these salts be generated randomly

Yes, of course.

are there any specific rules for creating them

There is no specific rule. The generic rule is to create long, random and complicated password. By default, WordPress generates them using wp_generate_password (wp_generate_password (64, true, true)). This function accepts three parameters (all are optional). The first param is the length (default value is 12), the second is to use standard special characters (boolean value, default is true), and the third is to use other special characters (boolean value, default is false).

share|improve this answer
+1 for the Codex referenced Answer and for being the 2nd to mention wp_salt in this Stack :) – brasofilo Jul 31 '12 at 8:25
Thank you. I updated my question with result. – Gundars Mēness Aug 1 '12 at 21:48
@GundarsMēness Thanks for sharing, what worked and how it could be used in practice. – Pothi Aug 2 '12 at 0:25

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.