37 lines
No EOL
1 KiB
PHP
37 lines
No EOL
1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Console\Commands;
|
|
|
|
use Illuminate\Console\Command;
|
|
use Illuminate\Support\Facades\Hash;
|
|
use Illuminate\Support\Str;
|
|
|
|
class GeneratePassword extends Command
|
|
{
|
|
protected $signature = 'password:generate {account}';
|
|
protected $description = 'Generate a password for a user and output the update SQL';
|
|
|
|
public function handle(): void
|
|
{
|
|
$account = $this->argument('account');
|
|
$password = Str::random(12); // 生成12位随机密码
|
|
$hashedPassword = Hash::make($password);
|
|
|
|
$this->info('Generated password for account: ' . $account);
|
|
$this->info('Plain password: ' . $password);
|
|
$this->info('Hashed password: ' . $hashedPassword);
|
|
|
|
// 生成 SQL
|
|
$sql = sprintf(
|
|
"UPDATE users SET password = '%s' WHERE account = '%s';",
|
|
$hashedPassword,
|
|
$account
|
|
);
|
|
|
|
$this->newLine();
|
|
$this->info('SQL to update password:');
|
|
$this->line($sql);
|
|
}
|
|
}
|