Signatur
Beschreibung
mcrypt_module_is_block_algorithm() ermittelt, ob ein bestimmter Algorithmus ein Blockalgorithmus ist. Blockalgorithmen verschlüsseln Daten in festen Blöcken (z. B. 8 oder 16 Byte), während Stromalgorithmen Daten byteweise verarbeiten. Typische Blockalgorithmen sind AES (Rijndael), DES, 3DES und Blowfish.
Diese Information ist nützlich, wenn man generisch mit verschiedenen Algorithmen arbeitet und wissen möchte, ob ein Padding oder eine bestimmte Betriebsart (z. B. CBC, CFB) erforderlich ist – was typischerweise nur bei Blockalgorithmen relevant ist.
Der optionale Parameter lib_dir erlaubt es, ein benutzerdefiniertes Verzeichnis anzugeben, in dem die mcrypt-Module gesucht werden. Wird er weggelassen, wird das Standard-Modulverzeichnis der mcrypt-Bibliothek verwendet.
Achtung: Die gesamte mcrypt_*-Erweiterung wurde in PHP 7.1 als veraltet markiert und in PHP 7.2 entfernt. Für neuen Code sollte stattdessen openssl_* oder sodium_* verwendet werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $algorithm Pflicht | string | Der Name des zu prüfenden Algorithmus, z. B. MCRYPT_RIJNDAEL_128, MCRYPT_DES oder 'rijndael-128' als String. |
|
| $lib_dir | string | Optionaler Pfad zum Verzeichnis, in dem die mcrypt-Modulbibliotheken gesucht werden. Wird dieser Parameter weggelassen oder als leerer String übergeben, wird das compiletime-Standardverzeichnis verwendet. |
Rückgabewert
true zurück, wenn der angegebene Algorithmus ein Blockalgorithmus ist, andernfalls false.Beispiele
Prüfung, ob AES ein Blockalgorithmus ist
<?php
// Prüfe für Rijndael-128 (AES), ob es ein Blockalgorithmus ist
$algorithm = 'rijndael-128';
if (mcrypt_module_is_block_algorithm($algorithm)) {
echo "'{$algorithm}' ist ein Blockalgorithmus.\n";
} else {
echo "'{$algorithm}' ist ein Stromalgorithmus.\n";
}
?>
Dynamische Auswahl des Padding-Verhaltens anhand des Algorithmus-Typs
<?php
$algorithms = ['rijndael-128', 'des', 'arcfour'];
foreach ($algorithms as $algo) {
$isBlock = mcrypt_module_is_block_algorithm($algo);
echo $algo . ': ' . ($isBlock ? 'Block' : 'Strom') . "algorithmus\n";
if ($isBlock) {
$blockSize = mcrypt_module_get_algo_block_size($algo);
echo " -> Blockgröße: {$blockSize} Byte\n";
}
}
?>
// Wichtig · Fallstricke
Deprecation: Die mcrypt-Erweiterung wurde in PHP 7.1.0 als veraltet (deprecated) eingestuft und in PHP 7.2.0 vollständig entfernt. Diese Funktion steht ab PHP 7.2 nicht mehr zur Verfügung.
Für modernen Code sollte openssl_get_cipher_methods() in Kombination mit den openssl_encrypt()/openssl_decrypt()-Funktionen oder die sodium_*-Funktionen der Libsodium-Erweiterung verwendet werden, da diese aktiv gewartet werden und aktuelle Sicherheitsstandards erfüllen.