Syntax
------

PASSWORD(str)

Description
-----------

The PASSWORD() function is used for hashing passwords for use in
authentication by the MariaDB server. It is not intended for use in other
applications.

Calculates and returns a hashed password string from the plaintext password
str. Returns an empty string (>= MariaDB 10.0.4) if the argument was NULL.

The return value is a nonbinary string in the connection character set and
collation, determined by the values of the character_set_connection and
collation_connection system variables.

This is the function that is used for hashing MariaDB passwords for storage in
the Password column of the user table (see privileges), usually used with the
SET PASSWORD statement. It is not intended for use in other applications.

Until MariaDB 10.3, the return value is 41-bytes in length, and the first
character is always '*'. From MariaDB 10.4, the function takes into account
the authentication plugin where applicable (A CREATE USER or SET PASSWORD
statement). For example, when used in conjunction with a user authenticated by
the ed25519 plugin, the statement will create a longer hash:

CREATE USER edtest@localhost IDENTIFIED VIA ed25519 USING PASSWORD('secret');

CREATE USER edtest2@localhost IDENTIFIED BY 'secret';

SELECT CONCAT(user, '@', host, ' => ', JSON_DETAILED(priv)) FROM
mysql.global_priv
 WHERE user LIKE 'edtest%'\G
*************************** 1. row ***************************
CONCAT(user, '@', host, ' => ', JSON_DETAILED(priv)): edtest@localhost => {
...
  "plugin": "ed25519",
  "authentication_string": "ZIgUREUg5PVgQ6LskhXmO+eZLS0nC8be6HPjYWR4YJY",
...
}
*************************** 2. row ***************************
CONCAT(user, '@', host, ' => ', JSON_DETAILED(priv)): edtest2@localhost => {
...
  "plugin": "mysql_native_password",
  "authentication_string": "*14E65567ABDB5135D0CFD9A70B3032C179A49EE7",
...
}

The behavior of this function is affected by the value of the old_passwords
system variable. If this is set to 1 (0 is default), MariaDB reverts to using
the mysql_old_password authentication plugin by default for newly created
users and passwords.

Examples
--------

SELECT PASSWORD('notagoodpwd');
+-------------------------------------------+
| PASSWORD('notagoodpwd')                   |
+-------------------------------------------+
| *3A70EE9FC6594F88CE9E959CD51C5A1C002DC937 |
+-------------------------------------------+

SET PASSWORD FOR 'bob'@'%.loc.gov' = PASSWORD('newpass');

URL: https://mariadb.com/kb/en/password/