?~'; for ($i = 0; $i < 100; $i++) { $salt .= $characters[random_int(0, strlen($characters) - 1)]; } // 生成密码哈希(SHA-512(password + salt)) $password_hash = hash('sha512', $new_password . $salt); // 数据库连接信息 $db_host = getenv('REDCAP_DB_HOST') ?: 'redcap-mysql'; $db_name = getenv('REDCAP_DB_NAME') ?: 'redcap'; $db_user = getenv('REDCAP_DB_USER') ?: 'redcap_user'; $db_pass = getenv('REDCAP_DB_PASS') ?: 'redcap_pass_dev_456'; try { $pdo = new PDO("mysql:host=$db_host;dbname=$db_name", $db_user, $db_pass); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 更新密码 $stmt = $pdo->prepare("UPDATE redcap_auth SET password = ?, password_salt = ? WHERE username = ?"); $result = $stmt->execute([$password_hash, $salt, $username]); if ($result) { echo "✅ Password updated successfully!\n\n"; echo "Username: $username\n"; echo "New Password: $new_password\n\n"; echo "You can now login at: http://localhost:8080/\n"; } else { echo "❌ Failed to update password\n"; } } catch (PDOException $e) { echo "❌ Database error: " . $e->getMessage() . "\n"; }