Signatur
Beschreibung
mcrypt_module_get_algo_key_size() ermittelt die maximale Schlüssellänge in Bytes, die ein bestimmter Verschlüsselungsalgorithmus unterstützt. Dies ist nützlich, um vor der Verschlüsselung sicherzustellen, dass ein übergebener Schlüssel die zulässige Maximallänge nicht überschreitet oder um den Schlüssel entsprechend aufzufüllen.
Der optionale Parameter lib_dir erlaubt die Angabe eines benutzerdefinierten Verzeichnisses, in dem die mcrypt-Bibliotheksmodule gesucht werden. Wird er weggelassen, wird das in der php.ini konfigurierte Standardverzeichnis verwendet.
Wichtig: Die gesamte mcrypt-Erweiterung gilt seit PHP 7.1 als veraltet (deprecated) und wurde mit PHP 7.2 vollständig aus dem Kern entfernt. Für neue Projekte sollte stattdessen die openssl-Erweiterung oder sodium (libsodium, verfügbar ab PHP 7.2) eingesetzt werden.
Die Funktion arbeitet ausschließlich auf der Modulebene und benötigt keine geöffnete Ressource. Sie liest die Metadaten direkt aus dem Algorithmus-Modul.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $algorithm Pflicht | string | Name des Algorithmus, z. B. MCRYPT_RIJNDAEL_128, MCRYPT_BLOWFISH oder 'rijndael-128'. |
|
| $lib_dir | string | Optionaler Pfad zum Verzeichnis, in dem die mcrypt-Algorithmusmodule gesucht werden. Leer bedeutet: Standardverzeichnis aus der php.ini. |
Rückgabewert
Beispiele
Maximale Schlüsselgröße von AES-256 ermitteln
<?php
// AES-256 entspricht Rijndael-128 mit 256-Bit-Schlüssel
$algorithmus = MCRYPT_RIJNDAEL_128;
$maxKeySize = mcrypt_module_get_algo_key_size($algorithmus);
echo "Maximale Schlüsselgröße für {$algorithmus}: {$maxKeySize} Bytes (" . ($maxKeySize * 8) . " Bit)\n";
?>
Schlüssel validieren und anpassen vor der Verschlüsselung
<?php
$algorithmus = MCRYPT_BLOWFISH;
$modus = MCRYPT_MODE_CBC;
$maxKeySize = mcrypt_module_get_algo_key_size($algorithmus);
$roherSchluessel = 'MeinGeheimerLangerSchluesselDerMoeglicherweiseZuLangIst';
// Schlüssel auf die zulässige Maximallänge kürzen
if (strlen($roherSchluessel) > $maxKeySize) {
$schluessel = substr($roherSchluessel, 0, $maxKeySize);
echo "Schlüssel wurde auf {$maxKeySize} Bytes gekürzt.\n";
} else {
$schluessel = $roherSchluessel;
}
echo "Verwendeter Schlüssel: {$schluessel}\n";
?>
// Wichtig · Fallstricke
Deprecation: Die mcrypt-Erweiterung ist seit PHP 7.1.0 als veraltet markiert und wurde in PHP 7.2.0 entfernt. mcrypt_module_get_algo_key_size() steht in aktuellen PHP-Versionen nicht mehr zur Verfügung.
Für moderne Projekte empfiehlt sich die Verwendung von openssl_encrypt() / openssl_decrypt() oder der sodium_*-Funktionen aus der Sodium-Erweiterung. Beide bieten zeitgemäße, sichere Alternativen ohne die Schwächen der mcrypt-Bibliothek.
Beim Erzeugen kryptografischer Schlüssel sollte stets ein kryptografisch sicherer Zufallsgenerator wie random_bytes() verwendet werden, anstatt menschenlesbare Passwörter direkt als Schlüssel einzusetzen.