Signatur
Beschreibung
mcrypt_enc_get_modes_name() gibt den Namen des Betriebsmodus zurück, mit dem das übergebene mcrypt-Encryption-Handle geöffnet wurde. Typische Modi sind etwa CBC (Cipher Block Chaining), ECB (Electronic Codebook), CFB oder OFB.
Die Funktion ist nützlich, wenn man zur Laufzeit prüfen möchte, welcher Modus tatsächlich für eine bestimmte mcrypt-Ressource aktiv ist – zum Beispiel zu Logging- oder Debugging-Zwecken, oder um sicherzustellen, dass der erwartete Modus verwendet wird, bevor Daten ver- oder entschlüsselt werden.
Der zurückgegebene String enthält den Namen in Großbuchstaben so, wie er von der zugrunde liegenden libmcrypt-Bibliothek bereitgestellt wird. Das Encryption-Handle muss zuvor mit mcrypt_module_open() geöffnet worden sein.
Wichtig: Die gesamte mcrypt_*-Erweiterung wurde in PHP 7.1 als deprecated markiert und in PHP 7.2 vollständig entfernt. Für neue Projekte sollte stattdessen openssl_* oder sodium_* verwendet werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $td Pflicht | resource | Ein gültiges mcrypt-Encryption-Handle, das zuvor mit mcrypt_module_open() geöffnet wurde. |
Rückgabewert
'CBC', 'ECB', 'CFB' oder 'OFB'.Beispiele
Modus-Namen eines geöffneten mcrypt-Handles ausgeben
<?php
// Nur für PHP < 7.1 verfügbar!
$td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
$modeName = mcrypt_enc_get_modes_name($td);
echo 'Aktiver Modus: ' . $modeName . PHP_EOL;
mcrypt_module_close($td);
?>
Modus-Validierung vor der Verschlüsselung
<?php
// Nur für PHP < 7.1 verfügbar!
$td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_ECB, '');
$modeName = mcrypt_enc_get_modes_name($td);
if ($modeName === 'ECB') {
// ECB gilt als unsicher – Warnung ausgeben
trigger_error(
'ECB-Modus ist unsicher und sollte nicht verwendet werden!',
E_USER_WARNING
);
}
mcrypt_module_close($td);
?>
// Wichtig · Fallstricke
Deprecation: mcrypt_enc_get_modes_name() ist seit PHP 7.1.0 als deprecated markiert und wurde in PHP 7.2.0 vollständig entfernt. Sie steht in modernen PHP-Versionen nicht mehr zur Verfügung.
Sicherheit: Bestimmte Modi wie ECB sind kryptografisch unsicher, da sie identische Klartextblöcke auf identische Chiffretextblöcke abbilden. Für neue Implementierungen empfiehlt sich der Einsatz von openssl_encrypt() / openssl_decrypt() oder der Sodium-Erweiterung (sodium_crypto_secretbox()).