Signatur
Beschreibung
mcrypt_list_modes() liefert eine Liste aller Verschlüsselungsmodi, die von der installierten libmcrypt-Bibliothek unterstützt werden. Typische Modi sind beispielsweise cbc (Cipher Block Chaining), ecb (Electronic Codebook), cfb (Cipher Feedback) oder ctr (Counter).
Die Funktion ist nützlich, um zur Laufzeit zu prüfen, welche Modi auf dem aktuellen System verfügbar sind, bevor eine Verschlüsselung mit mcrypt_encrypt() oder mcrypt_module_open() durchgeführt wird. So lassen sich Kompatibilitätsprobleme zwischen verschiedenen Serverumgebungen vermeiden.
Optional kann ein Verzeichnispfad ($lib_dir) angegeben werden, aus dem die Modi geladen werden sollen. Wird kein Pfad angegeben oder ein leerer String übergeben, nutzt die Funktion das Standard-Bibliotheksverzeichnis der libmcrypt-Installation.
Achtung: Die gesamte mcrypt-Erweiterung wurde in PHP 7.1 als deprecated markiert und in PHP 7.2 vollständig entfernt. Für neue Projekte sollte stattdessen die openssl- oder sodium-Erweiterung verwendet werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $lib_dir | string | Optionaler Pfad zum Verzeichnis, in dem die Mcrypt-Modus-Module gesucht werden. Wird ein leerer String übergeben oder der Parameter weggelassen, wird das Standard-Systemverzeichnis verwendet. |
Rückgabewert
['cbc', 'cfb', 'ctr', 'ecb', 'ncfb', 'nofb', 'ofb', 'stream'].Beispiele
Alle verfügbaren Modi ausgeben
<?php
$modes = mcrypt_list_modes();
echo "Unterstützte Verschlüsselungsmodi:" . PHP_EOL;
foreach ($modes as $mode) {
echo ' - ' . $mode . PHP_EOL;
}
?>
Prüfen, ob ein bestimmter Modus verfügbar ist
<?php
$gewuenschterModus = 'cbc';
$verfuegbareModi = mcrypt_list_modes();
if (in_array($gewuenschterModus, $verfuegbareModi, true)) {
echo "Der Modus '{$gewuenschterModus}' ist verfügbar." . PHP_EOL;
// Verschlüsselung mit dem Modus durchführen ...
} else {
echo "Der Modus '{$gewuenschterModus}' wird auf diesem System nicht unterstützt." . PHP_EOL;
}
?>
// Wichtig · Fallstricke
Deprecation-Hinweis: Die mcrypt-Erweiterung und alle zugehörigen Funktionen, einschließlich mcrypt_list_modes(), wurden in PHP 7.1 als veraltet markiert (deprecated) und in PHP 7.2 vollständig aus dem Sprachkern entfernt. Bei Verwendung in PHP 7.1 wird eine E_DEPRECATED-Warnung ausgegeben.
Für moderne PHP-Projekte sollte auf die openssl_*-Funktionen (z. B. openssl_encrypt()) oder die sodium_*-Funktionen (z. B. sodium_crypto_secretbox()) umgestellt werden, da diese aktiv gepflegt werden und als kryptografisch sicherer gelten. Der ECB-Modus (ecb) sollte grundsätzlich gemieden werden, da er keine semantische Sicherheit bietet.