diff --git a/typo3/sysext/core/Classes/Hooks/BackendUserPasswordCheck.php b/typo3/sysext/core/Classes/Hooks/BackendUserPasswordCheck.php
index 9106d274ddea472f33bd83e00fcade69d3e7519a..f690601b75d124dbed6b68ab72351b85dcdc2a23 100644
--- a/typo3/sysext/core/Classes/Hooks/BackendUserPasswordCheck.php
+++ b/typo3/sysext/core/Classes/Hooks/BackendUserPasswordCheck.php
@@ -29,10 +29,7 @@ use TYPO3\CMS\Core\Utility\MathUtility;
  */
 class BackendUserPasswordCheck
 {
-    /**
-     * @var Random
-     */
-    protected $random;
+    protected Random $random;
 
     public function __construct()
     {
@@ -58,7 +55,12 @@ class BackendUserPasswordCheck
             return;
         }
         if (!isset($incomingFieldArray['password']) || (string)$incomingFieldArray['password'] === '') {
-            $incomingFieldArray['password'] = GeneralUtility::hmac($id, $this->random->generateRandomBytes(20));
+            $incomingFieldArray['password'] = $this->random->generateRandomPassword([
+                'lowerCaseCharacters' => true,
+                'upperCaseCharacters' => true,
+                'digitCharacters' => true,
+                'specialCharacters' => true,
+            ]);
         }
         if (!isset($incomingFieldArray['username']) || (string)$incomingFieldArray['username'] === '') {
             $incomingFieldArray['username'] = 'autogenerated-' . md5($id);