Start · Sprachen · PHP · Referenz · mcrypt_enc_get_modes_name

mcrypt_enc_get_modes_name

Funktion

Gibt den Namen des aktuell verwendeten Verschlüsselungsmodus (z. B. <code>CBC</code>, <code>ECB</code>) für ein geöffnetes mcrypt-Handle zurück.

seit PHP 4.0.2 Kategorie: crypto

Signatur

mcrypt_enc_get_modes_name(resource $td): string

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

Typ
string
Beschreibung
Gibt den Namen des für das Handle verwendeten Verschlüsselungsmodus als String zurück, z. B. '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);
?>
Aktiver Modus: CBC

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()).