Password
From: https://mariadb.com/kb/en/password/
PASSWORD
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');
See Also