현재 위치: > 최신 기사 목록> crypt () 암호화에 필요한 시간을 테스트하는 방법

crypt () 암호화에 필요한 시간을 테스트하는 방법

M66 2025-05-27

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가 제공하는 강력한 암호화 도구이지만 선택한 알고리즘과 반복 수에 의존하는 데 시간이 걸립니다. 마이크로 초 수준의 시간 측정을 통해 암호화 프로세스의 성능을 합리적으로 평가할 수 있습니다. 이것은 시스템 보안 및 성능 튜닝에 중요합니다. 실제 애플리케이션에서는 시스템 기능과 보안 요구에 따라 보안과 성능 간의 균형을 달성하기 위해 암호화 매개 변수를 합리적으로 선택하십시오.