Signatur
Beschreibung
mcrypt_enc_get_block_size() liefert die Blockgröße des Verschlüsselungsalgorithmus, der durch den mcrypt-Deskriptor $td repräsentiert wird. Die Blockgröße ist die Anzahl der Bytes, die ein Algorithmus im Blockchiffre-Modus in einem Schritt ver- oder entschlüsselt.
Die Funktion ist nützlich, wenn Padding oder IV-Berechnung manuell durchgeführt werden müssen — beide sind direkt von der Blockgröße des verwendeten Algorithmus abhängig. Zum Beispiel benötigt AES eine Blockgröße von 16 Bytes.
Der Deskriptor $td muss zuvor mit mcrypt_module_open() geöffnet worden sein. Nach der Verwendung sollte der Deskriptor mit mcrypt_module_close() wieder freigegeben werden.
Achtung: Die gesamte mcrypt-Erweiterung wurde in PHP 7.1 als veraltet markiert und in PHP 7.2 vollständig entfernt. Für neue Projekte sollte stattdessen openssl_*-Funktionen oder die sodium-Erweiterung verwendet werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $td Pflicht | resource | Ein mcrypt-Deskriptor, der zuvor mit mcrypt_module_open() geöffnet wurde. |
Rückgabewert
Beispiele
Blockgröße von AES (Rijndael-128) ermitteln
<?php
// Algorithmus-Deskriptor öffnen
$td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
// Blockgröße des Algorithmus ermitteln
$blockSize = mcrypt_enc_get_block_size($td);
echo "Blockgröße: " . $blockSize . " Bytes" . PHP_EOL;
// Deskriptor wieder schließen
mcrypt_module_close($td);
?>
Blockgröße zur Padding-Berechnung nutzen
<?php
$td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
$blockSize = mcrypt_enc_get_block_size($td);
$data = 'Geheime Nachricht';
// PKCS7-Padding berechnen
$padLength = $blockSize - (strlen($data) % $blockSize);
$paddedData = $data . str_repeat(chr($padLength), $padLength);
echo "Originaldaten-Länge: " . strlen($data) . " Bytes" . PHP_EOL;
echo "Gepaddte Länge: " . strlen($paddedData) . " Bytes" . PHP_EOL;
echo "Blockgröße: " . $blockSize . " Bytes" . PHP_EOL;
mcrypt_module_close($td);
?>
// Wichtig · Fallstricke
Deprecation-Hinweis: Die mcrypt-Erweiterung wurde in PHP 7.1 als veraltet (deprecated) markiert und in PHP 7.2 vollständig aus dem Kern entfernt. mcrypt_enc_get_block_size() steht in PHP 7.2+ nicht mehr zur Verfügung.
Für moderne PHP-Projekte sollten stattdessen openssl_cipher_iv_length() oder Funktionen der sodium-Erweiterung (z. B. sodium_crypto_secretbox()) genutzt werden, die aktiv gepflegt und sicherheitstechnisch empfohlen sind.