Aktueller Standort: Startseite> Neueste Artikel> So testen Sie die Zeit für die Verschlüsselung von Crypt ()

So testen Sie die Zeit für die Verschlüsselung von Crypt ()

M66 2025-05-27

In PHP wird die Crypt () -Funktion häufig zum Verschlüsseln von Kennwörtern verwendet. Es unterstützt eine Vielzahl von Algorithmen wie Standard DES, MD5, SHA-256, SHA-512 usw. Bei Sicherheitsanwendungen ist es sehr wichtig, die Ausführungszeit der Crypt () -Funktion () zu verstehen, insbesondere wenn die Systemleistung oder die Ausführung von Kennwortkostenkontrolle ausgeübt wird.

In diesem Artikel wird vorgestellt, wie die Verschlüsselungszeit der Crypt () -Funktion durch PHP misst und praktische Beispiele angibt.

Zeit mit microtime messen ()

In PHP können Sie die Funktion Microtime (True) verwenden, um den aktuellen Unix -Zeitstempel (einschließlich Mikrosekunden) zu erhalten und die Ausführungszeit eines bestimmten Code -Stücks zu messen, indem die Differenz zwischen den beiden Zeitstempel vor und nach berechnet wird.

Hier ist ein Beispiel für die Messung der zeitaufwändigen Verschlüsselung der Crypt () -Funktion:

 <?php
$password = 'TestPassword123';
$salt = '$6$rounds=5000$usesomesillystringforsalt$'; // SHA-512 Beispiel

$start = microtime(true);
$hash = crypt($password, $salt);
$end = microtime(true);

$duration = $end - $start;

echo "Verschlüsselungsergebnisse: $hash\n";
echo "zeitaufwendig: " . number_format($duration, 6) . " Zweite\n";
?>

Im obigen Beispiel haben wir den SHA-512-Algorithmus verwendet und die Verschlüsselungsiterationen durch den Parameter der Runden auf 5000 gesetzt. Sie können die zeitaufwändigen Änderungen unter verschiedenen Verschlüsselungsstärken beobachten, indem Sie den Rundenwert einstellen.

Führen Sie mehrere Tests mit Schleifen durch, um den Durchschnitt zu erhalten

Um die Verschlüsselungszeit genauer zu bewerten, kann Crypt () mehrmals durchgeführt werden und die durchschnittliche Zeit wird berechnet:

 <?php
$password = 'TestPassword123';
$salt = '$6$rounds=5000$usesomesillystringforsalt$';
$iterations = 100;
$totalTime = 0;

for ($i = 0; $i < $iterations; $i++) {
    $start = microtime(true);
    crypt($password, $salt);
    $end = microtime(true);
    $totalTime += ($end - $start);
}

$averageTime = $totalTime / $iterations;

echo "平均加密zeitaufwendig($iterations Zweitklassifiziert): " . number_format($averageTime, 6) . " Zweite\n";
?>

Auf diese Weise können Sie Fehler beseitigen, die durch gelegentliche Systemschwankungen verursacht werden und genauer bewerten.

Online -Demonstration und Debugging

Sie können diese Testskripte auf Ihrem eigenen Server bereitstellen oder eine Online -PHP -Ausführungsumgebung verwenden. Wenn Sie auf einer Testwebsite bereitgestellt werden möchten, können Sie das Skript auf einen Pfad wie https://www.m66.net/test/crypt_time.php hochladen, um sicherzustellen, dass der Server in der CLI- oder Webumgebung PHP -Skripte ausgeführt werden kann.

Zusammenfassung

Crypt () ist ein leistungsstarkes Verschlüsselungsinstrument, das von PHP bereitgestellt wird, aber es braucht Zeit, um sich auf den ausgewählten Algorithmus und die Anzahl der Iterationen zu verlassen. Durch Zeitmessung auf Mikrosekundenebene können wir die Leistung seines Verschlüsselungsprozesses vernünftigerweise bewerten. Dies ist entscheidend für die Systemsicherheit und die Leistung des Systems. In praktischen Anwendungen wählen Sie bitte vernünftige Verschlüsselungsparameter basierend auf Systemfunktionen und Sicherheit, um ein Gleichgewicht zwischen Sicherheit und Leistung zu erreichen.