Signatur
Beschreibung
mcrypt_module_self_test() ruft die im Algorithmus-Modul eingebaute Selbsttestfunktion auf. Dabei werden interne Testvektoren gegen bekannte Ausgaben geprüft, um sicherzustellen, dass das Modul korrekt funktioniert und nicht beschädigt ist.
Die Funktion ist nützlich, um nach der Installation oder Kompilierung einer mcrypt-Bibliothek zu verifizieren, dass die einzelnen Algorithmen wie erwartet arbeiten – z. B. als Teil eines Deployment-Skripts oder einer Systemprüfung.
Als erster Parameter wird der Name des Algorithmus übergeben (z. B. MCRYPT_AES, MCRYPT_BLOWFISH usw.). Optional kann über $lib_dir ein Verzeichnis angegeben werden, in dem nach den Modul-Dateien gesucht wird; ohne Angabe wird das standardmäßig konfigurierte Verzeichnis verwendet.
Achtung: Die gesamte mcrypt-Erweiterung ist seit PHP 7.1 deprecated und wurde in PHP 7.2 vollständig entfernt. Für neue Projekte sollte stattdessen openssl oder sodium verwendet werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $algorithm Pflicht | string | Name des zu testenden Verschlüsselungsalgorithmus, z. B. MCRYPT_AES, MCRYPT_BLOWFISH oder MCRYPT_TRIPLEDES. |
|
| $lib_dir | string|null | null | Optionaler Pfad zu dem Verzeichnis, in dem die Algorithmus-Modul-Dateien gesucht werden. Wird null oder kein Wert angegeben, wird das in der PHP-Konfiguration hinterlegte Standardverzeichnis verwendet. |
Rückgabewert
true zurück, wenn der Selbsttest erfolgreich war, andernfalls false. Ein Rückgabewert von false deutet darauf hin, dass das Modul fehlerhaft oder beschädigt ist.Beispiele
Selbsttest für einen einzelnen Algorithmus
<?php
// Prüft, ob das AES-Modul korrekt funktioniert
if (mcrypt_module_self_test(MCRYPT_AES)) {
echo 'AES-Modul besteht den Selbsttest.';
} else {
echo 'AES-Modul ist fehlerhaft!';
}
Mehrere Algorithmen in einer Schleife testen
<?php
// Alle verfügbaren Algorithmen testen
$algorithms = mcrypt_list_algorithms();
foreach ($algorithms as $algo) {
$result = mcrypt_module_self_test($algo);
printf(
"%-20s %s\n",
$algo,
$result ? 'OK' : 'FEHLGESCHLAGEN'
);
}
// Wichtig · Fallstricke
Deprecated seit PHP 7.1.0: Die gesamte mcrypt-Erweiterung wurde in PHP 7.1 als veraltet markiert und in PHP 7.2 vollständig entfernt. Code, der diese Funktion verwendet, ist auf modernen PHP-Versionen nicht lauffähig.
Für symmetrische Verschlüsselung sollte stattdessen openssl_encrypt() / openssl_decrypt() oder die sodium-Erweiterung (z. B. sodium_crypto_secretbox()) verwendet werden, die aktiv gepflegt und sicherheitsgeprüft sind.
Ein bestandener Selbsttest garantiert nicht die kryptografische Sicherheit des Algorithmus oder seiner Verwendung – er prüft lediglich die interne Implementierungsrichtigkeit des Moduls.