Signatur
Beschreibung
mcrypt_module_get_algo_block_size() liefert die Blockgröße eines Verschlüsselungsalgorithmus in Bytes. Die Blockgröße gibt an, wie viele Bytes ein einzelner Datenblock hat, den der Algorithmus in einem Schritt verarbeitet. Für Stream-Chiffren beträgt dieser Wert typischerweise 1.
Diese Information ist wichtig, wenn man manuell Padding-Operationen implementiert oder prüft, ob Eingabedaten für einen bestimmten Blockverschlüsselungs-Algorithmus korrekt aufgefüllt (padded) sind. Die Blockgröße beeinflusst auch das Verhalten der verschiedenen Betriebsmodi wie CBC oder ECB.
Der optionale Parameter lib_dir erlaubt es, einen eigenen Pfad zu den mcrypt-Modulen anzugeben. Wird er weggelassen, wird der systemweit konfigurierte Standardpfad verwendet.
Achtung: Die gesamte mcrypt-Erweiterung ist seit PHP 7.1 als deprecated markiert und wurde in PHP 7.2 vollständig entfernt. Für neue Projekte sollte stattdessen openssl_* oder die sodium_*-Funktionen (libsodium) verwendet werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $algorithm Pflicht | string | Name des Algorithmus, z. B. MCRYPT_RIJNDAEL_128, MCRYPT_DES oder 'rijndael-128'. Es können sowohl die MCRYPT_*-Konstanten als auch direkte String-Namen verwendet werden. |
|
| $lib_dir | string | Optionaler Pfad zum Verzeichnis mit den mcrypt-Algorithmus-Modulen. Wird dieser Parameter weggelassen oder als leerer String übergeben, wird das systemweit konfigurierte Standard-Modulverzeichnis genutzt. |
Rückgabewert
1 zurückgegeben. Ist der Algorithmus unbekannt oder nicht verfügbar, wird ebenfalls ein Ganzzahlwert zurückgegeben (ggf. 0).Beispiele
Blockgröße verschiedener Algorithmen ausgeben
<?php
// Blockgrößen typischer Algorithmen abfragen (PHP <= 7.1)
$algorithms = [
'rijndael-128',
'des',
'tripledes',
'blowfish',
'arcfour', // Stream-Chiffre
];
foreach ($algorithms as $algo) {
$blockSize = mcrypt_module_get_algo_block_size($algo);
echo "Algorithmus '{$algo}': Blockgröße = {$blockSize} Byte(s)\n";
}
?>
Blockgröße zur Padding-Berechnung nutzen
<?php
// Daten auf die Blockgröße des gewählten Algorithmus auffüllen (PKCS#7-Padding)
$algorithm = 'rijndael-128';
$blockSize = mcrypt_module_get_algo_block_size($algorithm);
$data = 'Geheime Nachricht';
$padLength = $blockSize - (strlen($data) % $blockSize);
$paddedData = $data . str_repeat(chr($padLength), $padLength);
echo "Originallänge: " . strlen($data) . " Bytes\n";
echo "Blockgröße: {$blockSize} Bytes\n";
echo "Padded-Länge: " . strlen($paddedData) . " Bytes\n";
?>
// Wichtig · Fallstricke
Deprecation: Die mcrypt-Erweiterung wurde in PHP 7.1 als veraltet markiert (deprecated) und in PHP 7.2 vollständig entfernt. mcrypt_module_get_algo_block_size() steht in modernen PHP-Versionen nicht mehr zur Verfügung.
Für neue Projekte sollten ausschließlich openssl_cipher_iv_length() und verwandte openssl_*-Funktionen oder die libsodium-Funktionen (sodium_crypto_secretbox() etc.) eingesetzt werden. Diese sind sicherer, aktiv gepflegt und in PHP 7.2+ standardmäßig verfügbar.
Beim Einsatz der Blockgröße für eigenes Padding ist darauf zu achten, dass das Padding-Schema stets korrekt implementiert wird. Fehlerhaftes Padding kann zu Padding-Oracle-Angriffen führen.