MySQL 5.7中提供了生成隨機密碼的函數:RAND_STR()
這個函數需要兩個參數:字符串長度和字符集。例如,生成一個長度為8的隨機密碼,字符集包括大小寫字母和數字:
SELECT RAND_STR(8, 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789');
這個函數返回的是一個BINARY類型的字符串,需要使用HEX函數將其轉換為可讀的16進制字符串:
SELECT HEX(RAND_STR(8, 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'));
如果需要在程序中使用這個隨機密碼,可以使用以下代碼:
$password = bin2hex(random_bytes(4)); //生成4個字節的隨機數
其中random_bytes()函數是PHP 7中新增的生成強隨機數的函數。