PHP에서 Crypt () 함수는 종종 암호를 암호화하는 데 사용됩니다. 표준 DES, MD5, SHA-256, SHA-512 등과 같은 다양한 알고리즘을 지원합니다. 보안 관련 애플리케이션에서는 특히 시스템 성능을 평가하거나 암호 해제 비용 제어를 수행 할 때 Crypt () 기능의 실행 시간을 이해하는 것이 매우 중요합니다.
이 기사는 PHP를 통해 Crypt () 함수의 암호화 시간을 측정하고 실제 예를 제공하는 방법을 소개합니다.
PHP에서는 마이크로 타임 (True) 함수를 사용하여 현재 UNIX 타임 스탬프 (마이크로 초 포함)를 얻고 전후 두 타임 스탬프 간의 차이를 계산하여 특정 코드의 실행 시간을 측정 할 수 있습니다.
다음은 crypt () 함수의 시간이 소요되는 암호화를 측정하는 예입니다.
<?php
$password = 'TestPassword123';
$salt = '$6$rounds=5000$usesomesillystringforsalt$'; // SHA-512 예
$start = microtime(true);
$hash = crypt($password, $salt);
$end = microtime(true);
$duration = $end - $start;
echo "암호화 결과: $hash\n";
echo "시간이 많이 걸립니다: " . number_format($duration, 6) . " 두번째\n";
?>
위의 예에서는 SHA-512 알고리즘을 사용하고 라운드 매개 변수를 통해 암호화 반복을 5000으로 설정했습니다. 라운드 값을 조정하여 다른 암호화 강도에서 시간이 소요되는 변화를 관찰 할 수 있습니다.
암호화 시간을보다 정확하게 평가하려면 Crypt ()를 여러 번 수행 할 수 있고 평균 시간이 계산됩니다.
<?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 "平均加密시간이 많이 걸립니다($iterations 2 차): " . number_format($averageTime, 6) . " 두번째\n";
?>
이러한 방식으로 가끔 시스템 변동으로 인한 오류를 제거하고 암호화 시간을보다 정확하게 평가할 수 있습니다.
자체 서버에 이러한 테스트 스크립트를 배포하거나 온라인 PHP 실행 환경을 사용할 수 있습니다. 테스트 웹 사이트에 배포하려면 스크립트를 https://www.m66.net/test/crypt_time.php 와 같은 경로에 업로드하여 서버가 CLI 또는 웹 환경에서 PHP 스크립트를 실행할 수 있도록 할 수 있습니다.
Crypt () 는 PHP가 제공하는 강력한 암호화 도구이지만 선택한 알고리즘과 반복 수에 의존하는 데 시간이 걸립니다. 마이크로 초 수준의 시간 측정을 통해 암호화 프로세스의 성능을 합리적으로 평가할 수 있습니다. 이것은 시스템 보안 및 성능 튜닝에 중요합니다. 실제 애플리케이션에서는 시스템 기능과 보안 요구에 따라 보안과 성능 간의 균형을 달성하기 위해 암호화 매개 변수를 합리적으로 선택하십시오.