回答:
アスタリスクで始まるパスワードに加えて、ここにPASSWORD()のアルゴリズムがあります
SET @plaintextpassword = 'whatever password you want';
SELECT CONCAT('*',UPPER(SHA1(UNHEX(SHA1(@plaintextpassword)))));
mysql> SET @plaintextpassword = 'whatever password you want';
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT UPPER(SHA1(UNHEX(SHA1(@plaintextpassword)))) PWD_CREATION;
+------------------------------------------+
| PWD_CREATION |
+------------------------------------------+
| D09AF2704D843A5E4E84362830C7EC1CEA40DF8A |
+------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT PASSWORD(@plaintextpassword) PWD_FUNCTION;
+-------------------------------------------+
| PWD_FUNCTION |
+-------------------------------------------+
| *D09AF2704D843A5E4E84362830C7EC1CEA40DF8A |
+-------------------------------------------+
1 row in set (0.00 sec)
mysql>
私はこのアルゴリズムをMySQL PASSWORD()のハッシュアルゴリズムからずっと前に学びました
わかりました、ドキュメント自体でこれについて見つけました。
これはmysql 4.1で導入された変更であり、以前のパスワードの長さ16文字と新しいパスワードの長さ40文字を同時にサポートできるようになりました。Passwordカラムは41バイト(文字)になり、新しいパスワードは*
それらを識別するために必須で始まります。
ドキュメントから:
4.1形式のパスワードハッシュは常に「*」文字で始まりますが、4.1より前の形式のパスワードは決して始まりません。