0; $i--) { $j = random_int(0, $i); [$chars[$i], $chars[$j]] = [$chars[$j], $chars[$i]]; } return implode('', $chars); } public function encryptPassword(string $plaintext): string { return SignRSA::EncryptFunc($plaintext); } // ------------------------------------------------------------------------- // Persistence // ------------------------------------------------------------------------- /** * Update password only — IP already set during VM creation. */ public function updatePassword(int $moduleVmwareId, string $plainPassword): void { ModuleVmware::findOrFail($moduleVmwareId)->update([ 'password' => $this->encryptPassword($plainPassword), 'plain_password' => $plainPassword, ]); Log::info('VmProvisionService::updatePassword saved', [ 'module_vmware_id' => $moduleVmwareId, ]); } }