diff --git a/include/password-methods/class_passwordMethod.inc b/include/password-methods/class_passwordMethod.inc
index 841a0889bac38fb41c84385206147f558ea27b7e..954daa58b8893094a90b334f4098fa40c5b8609a 100755
--- a/include/password-methods/class_passwordMethod.inc
+++ b/include/password-methods/class_passwordMethod.inc
@@ -112,7 +112,7 @@ abstract class passwordMethod
         $pwd = $attrs['userPassword'][0];
       }
     }
-    return preg_match("/^[^\}]*+\}!/", $pwd);
+    return preg_match("/^[^\}]*+\}!/", (string) $pwd);
   }
 
   /*! \brief       Locks an account by adding a '!' as prefix to the password hashes.
@@ -188,14 +188,14 @@ abstract class passwordMethod
       if (empty($pwd)) {
         $pwd = passwordMethodEmpty::LOCKVALUE;
       } else {
-        $pwd = preg_replace("/(^[^\}]+\})(.*$)/",   "\\1!\\2",  $pwd);
+        $pwd = preg_replace("/(^[^\}]+\})(.*$)/",   "\\1!\\2",  (string) $pwd);
       }
     } else {
       /* Unlock entry */
       if ($pwd == passwordMethodEmpty::LOCKVALUE) {
         $pwd = '';
       } else {
-        $pwd = preg_replace("/(^[^\}]+\})!(.*$)/",  "\\1\\2",   $pwd);
+        $pwd = preg_replace("/(^[^\}]+\})!(.*$)/",  "\\1\\2",   (string) $pwd);
       }
     }
     $modify['userPassword'] = $pwd;
@@ -338,7 +338,7 @@ abstract class passwordMethod
   static function _extract_method ($password_hash): string
   {
     $hash = static::get_hash_name();
-    if (preg_match("/^\{$hash\}/i", $password_hash)) {
+    if (preg_match("/^\{$hash\}/i", (string) $password_hash)) {
       return $hash;
     }
 
@@ -391,7 +391,7 @@ abstract class passwordMethod
     global $config;
     if ($config->get_cfg_value('strictPasswordRules') == 'TRUE') {
       // Do we have UTF8 characters in the password?
-      return ($password == utf8_decode($password));
+      return ($password == mb_convert_encoding((string) $password, 'ISO-8859-1'));
     }
 
     return TRUE;
diff --git a/include/password-methods/class_passwordMethodCrypt.inc b/include/password-methods/class_passwordMethodCrypt.inc
index 924e0c602ace46070e7292ca532399a58cc8b6b5..77a1995c95f059502ef18347f62454f5e0336dc6 100755
--- a/include/password-methods/class_passwordMethodCrypt.inc
+++ b/include/password-methods/class_passwordMethodCrypt.inc
@@ -148,11 +148,11 @@ class passwordMethodCrypt extends passwordMethod
    */
   static function _extract_method ($password_hash): string
   {
-    if (!preg_match('/^{crypt}/i', $password_hash)) {
+    if (!preg_match('/^{crypt}/i', (string) $password_hash)) {
       return "";
     }
 
-    $password_hash = preg_replace('/^{[^}]+}!?/', '', $password_hash);
+    $password_hash = preg_replace('/^{[^}]+}!?/', '', (string) $password_hash);
 
     if (preg_match("/^[a-zA-Z0-9.\/][a-zA-Z0-9.\/]/", $password_hash)) {
       return "crypt/standard-des";
diff --git a/include/password-methods/class_passwordMethodSasl.inc b/include/password-methods/class_passwordMethodSasl.inc
index ba7b9a2d5d47a37b69b37c1289401d3ad82518b1..c6889c024c79f2784dbff6caeba0a7a201005cd2 100755
--- a/include/password-methods/class_passwordMethodSasl.inc
+++ b/include/password-methods/class_passwordMethodSasl.inc
@@ -44,8 +44,8 @@ class passwordMethodSasl extends passwordMethod
   function __construct ($dn = '', $userTab = NULL)
   {
     global $config;
-    $this->realm  = trim($config->get_cfg_value('saslRealm', ''));
-    $this->exop   = trim($config->get_cfg_value('saslExop', ''));
+    $this->realm  = trim((string) $config->get_cfg_value('saslRealm', ''));
+    $this->exop   = trim((string) $config->get_cfg_value('saslExop', ''));
 
     if ($dn == '' || $dn == 'new') {
       return;
diff --git a/include/password-methods/class_passwordMethodSmd5.inc b/include/password-methods/class_passwordMethodSmd5.inc
index b44b3ea142382abaa2672129fd380485cd4ab8cc..47e524a8b9d33b12d7dd6dca560270a414c3b341 100755
--- a/include/password-methods/class_passwordMethodSmd5.inc
+++ b/include/password-methods/class_passwordMethodSmd5.inc
@@ -65,7 +65,7 @@ class passwordMethodSmd5 extends passwordMethod
 
   function checkPassword ($pwd, $hash): bool
   {
-    $hash = base64_decode(substr($hash, 6));
+    $hash = base64_decode(substr((string) $hash, 6));
     $salt = substr($hash, 16);
     $hash = substr($hash, 0, 16);
     $nhash = pack('H*', md5($pwd . $salt));
diff --git a/include/password-methods/class_passwordMethodSsha.inc b/include/password-methods/class_passwordMethodSsha.inc
index 6cc0c01c85187eb21df73e239d74180acc3234e7..63f17b98ed85bf8a9a6f5f0a1fb4410dea65227b 100755
--- a/include/password-methods/class_passwordMethodSsha.inc
+++ b/include/password-methods/class_passwordMethodSsha.inc
@@ -73,7 +73,7 @@ class passwordMethodSsha extends passwordMethod
 
   function checkPassword ($pwd, $hash): bool
   {
-    $hash = base64_decode(substr($hash, 6));
+    $hash = base64_decode(substr((string) $hash, 6));
     $salt = substr($hash, 20);
     $hash = substr($hash, 0, 20);
     if (function_exists('sha1')) {
diff --git a/include/password-methods/class_passwordMethodSsha512.inc b/include/password-methods/class_passwordMethodSsha512.inc
index 5a52f7bf9886daa8e21d9643be973b3c4269aed9..5767aeb26002eed2ec581e01f275375cbd1555f5 100755
--- a/include/password-methods/class_passwordMethodSsha512.inc
+++ b/include/password-methods/class_passwordMethodSsha512.inc
@@ -70,7 +70,7 @@ class passwordMethodSsha512 extends passwordMethod
 
   function checkPassword ($pwd, $hash): bool
   {
-    $hash = base64_decode(substr($hash, 9));
+    $hash = base64_decode(substr((string) $hash, 9));
     $salt = substr($hash, 64);
     $hash = substr($hash, 0, 64);
     if (function_exists('hash')) {