Signatur
Beschreibung
mcrypt_module_is_block_algorithm_mode() prüft, ob der angegebene Modus ein Blockalgorithmus-Modus ist. Blockbasierte Modi wie cbc, ecb oder cfb arbeiten auf fixen Datenblöcken, während Strom-Modi wie stream byteweise arbeiten. Die Funktion gibt true zurück, wenn der Modus blockbasiert ist, andernfalls false.
Diese Funktion ist nützlich, wenn man zur Laufzeit entscheiden möchte, ob Padding oder eine bestimmte Blockgröße berücksichtigt werden muss. Bei blockbasierten Modi ist die Eingabe in der Regel auf ein Vielfaches der Blockgröße aufzufüllen, bei Strom-Modi hingegen nicht.
Der optionale Parameter lib_dir erlaubt die Angabe eines alternativen Verzeichnisses, in dem die mcrypt-Modul-Bibliotheken gesucht werden. Wird er weggelassen, wird das Standardverzeichnis der mcrypt-Installation verwendet.
Achtung: Die gesamte mcrypt-Erweiterung ist seit PHP 7.1 als veraltet markiert und wurde 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 |
|---|---|---|---|
| $mode Pflicht | string | Der Name des zu prüfenden Modus, z. B. 'cbc', 'ecb', 'cfb' oder 'stream'. |
|
| $lib_dir | string | Optionaler Pfad zum Verzeichnis, in dem die mcrypt-Modus-Bibliotheken gesucht werden. Wird der Parameter weggelassen oder als leerer String übergeben, wird das Standardverzeichnis der mcrypt-Installation verwendet. |
Rückgabewert
true zurück, wenn der angegebene Modus ein Blockalgorithmus-Modus ist (z. B. cbc, ecb), andernfalls false (z. B. bei stream).Beispiele
Prüfen ob cbc ein Block-Modus ist
<?php
// Prüft, ob der Modus 'cbc' ein Blockalgorithmus-Modus ist
$mode = 'cbc';
if (mcrypt_module_is_block_algorithm_mode($mode)) {
echo "Der Modus '{$mode}' ist ein Blockalgorithmus-Modus.";
} else {
echo "Der Modus '{$mode}' ist KEIN Blockalgorithmus-Modus.";
}
Vergleich zwischen Block- und Strom-Modus
<?php
$modi = ['cbc', 'ecb', 'cfb', 'stream'];
foreach ($modi as $mode) {
$istBlock = mcrypt_module_is_block_algorithm_mode($mode);
echo "Modus '{$mode}': " . ($istBlock ? 'Block-Modus' : 'Strom-Modus') . PHP_EOL;
}
// Wichtig · Fallstricke
Deprecation: Die mcrypt-Erweiterung wurde in PHP 7.1 als veraltet markiert (E_DEPRECATED) und in PHP 7.2 vollständig entfernt. Diese Funktion steht in modernen PHP-Versionen nicht mehr zur Verfügung.
Für neue Projekte oder Migrationen sollte openssl_*-Funktionen (z. B. openssl_encrypt()) oder die sodium_*-API (libsodium, ab PHP 7.2 im Core) eingesetzt werden. Diese bieten aktiv gepflegte, sichere Implementierungen moderner Verschlüsselungsverfahren.
Blockbasierte Modi benötigen in der Regel Padding (z. B. PKCS#7), wenn die Eingabelänge kein Vielfaches der Blockgröße ist. Diese Funktion kann genutzt werden, um zur Laufzeit zu entscheiden, ob Padding notwendig ist.