Signatur
Beschreibung
mcrypt_enc_get_algorithms_name() liefert den Namen des Algorithmus, der dem übergebenen mcrypt-Verschlüsselungsdeskriptor zugeordnet ist. Der Deskriptor muss zuvor mit mcrypt_module_open() geöffnet worden sein.
Die Funktion ist nützlich, wenn man zur Laufzeit überprüfen möchte, welcher Algorithmus tatsächlich hinter einem Deskriptor steckt – etwa beim Debuggen oder beim Loggen von Kryptographie-Operationen. Der zurückgegebene Name entspricht dem Algorithmusnamen so, wie er von der zugrundeliegenden libmcrypt-Bibliothek definiert ist (z. B. RIJNDAEL-128, BLOWFISH oder TWOFISH).
Die mcrypt-Erweiterung wurde in PHP 7.1 als veraltet markiert und in PHP 7.2 vollständig entfernt. Für neuen Code sollte stattdessen openssl_encrypt() / openssl_decrypt() oder die Sodium-Erweiterung verwendet werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $td Pflicht | resource | Ein mcrypt-Verschlüsselungsdeskriptor, der zuvor mit mcrypt_module_open() geöffnet wurde. |
Rückgabewert
"RIJNDAEL-128" oder "BLOWFISH". Der Name stammt direkt aus der libmcrypt-Bibliothek.Beispiele
Algorithmusnamen eines geöffneten Deskriptors auslesen
<?php
// Verschlüsselungsdeskriptor öffnen
$td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
// Name des Algorithmus ermitteln
$name = mcrypt_enc_get_algorithms_name($td);
echo 'Algorithmus: ' . $name . PHP_EOL;
// Deskriptor schließen
mcrypt_module_close($td);
?>
Algorithmusnamen mehrerer Deskriptoren vergleichen
<?php
$algorithms = [
MCRYPT_BLOWFISH,
MCRYPT_TWOFISH,
MCRYPT_RIJNDAEL_256,
];
foreach ($algorithms as $algo) {
$td = mcrypt_module_open($algo, '', MCRYPT_MODE_ECB, '');
echo 'Geöffneter Algorithmus: ' . mcrypt_enc_get_algorithms_name($td) . PHP_EOL;
mcrypt_module_close($td);
}
?>
// Wichtig · Fallstricke
Veraltet und entfernt: Die gesamte mcrypt-Erweiterung wurde in PHP 7.1 als veraltet (deprecated) markiert und in PHP 7.2 vollständig aus dem PHP-Kern entfernt. mcrypt_enc_get_algorithms_name() steht in modernen PHP-Versionen nicht mehr zur Verfügung.
Für neue Projekte sollten ausschließlich openssl_encrypt() / openssl_decrypt() oder die Sodium-Erweiterung (sodium_crypto_secretbox() etc.) eingesetzt werden, da diese aktiv gepflegt, sicherer und wesentlich leistungsfähiger sind.
Die Funktion wirft keinen Fehler, wenn ein ungültiger Deskriptor übergeben wird — das Ergebnis ist in diesem Fall undefiniert. Stets sicherstellen, dass mcrypt_module_open() erfolgreich war, bevor der Deskriptor weiterverwendet wird.