函式名稱:openssl_x509_fingerprint()
適用版本:PHP 5 >= 5.6.0, PHP 7
說明:openssl_x509_fingerprint() 函式用於計算給定 X.509 證書的指紋(fingerprint)。指紋是透過應用指定的雜湊演算法對證書進行計算得到的一個唯一標識。
用法: string openssl_x509_fingerprint ( mixed $x509 [, string $hash_algorithm = "sha1" [, bool $binary = FALSE ]] )
引數:
- $x509:必需,一個 X.509 證書,可以是一個檔案路徑、證書字串或者一個 OpenSSL X.509 證書資源。
- $hash_algorithm:可選,指定用於計算指紋的雜湊演算法,預設為 "sha1"。可以使用的雜湊演算法有:md5、sha1、sha224、sha256、sha384、sha512。
- $binary:可選,指定返回的指紋是否為二進位制格式,預設為 FALSE。如果設定為 TRUE,將返回二進位制格式的指紋;如果設定為 FALSE,將返回十六進位制格式的指紋。
返回值: 成功時返回指紋的字串,如果發生錯誤則返回 FALSE。
示例:
// 從檔案載入 X.509 證書
$certPath = '/path/to/certificate.crt';
$certificate = file_get_contents($certPath);
// 計算 SHA256 雜湊演算法的指紋並以十六進位制格式返回
$fingerprint = openssl_x509_fingerprint($certificate, 'sha256');
echo "SHA256 Fingerprint: " . $fingerprint . "\n";
// 計算 MD5 雜湊演算法的指紋並以二進位制格式返回
$fingerprint = openssl_x509_fingerprint($certificate, 'md5', true);
echo "MD5 Fingerprint (binary): " . bin2hex($fingerprint) . "\n";
注意事項:
- 在使用該函式之前,需要確保 OpenSSL 擴充套件已經正確安裝並啟用。
- 為了安全起見,建議使用更強大的雜湊演算法(如 SHA256)來計算指紋,而不是較弱的演算法(如 MD5)。
- 可以透過將 $binary 引數設定為 TRUE,將指紋以二進位制格式返回,然後使用 bin2hex() 函式將其轉換為十六進位制格式。