當我們在服務器端需要進行加密和解密操作時,OpenSSL 是一種非常常用且可靠的庫。在 Linux 系統下,我們可以使用 php 擴展 openssl 來訪問 OpenSSL。在本文中,我們將探討如何使用這個擴展,包括如何在 PHP 中安裝 OpenSSL 擴展,如何生成和使用 CSR,以及如何加密和解密數據。
安裝 OpenSSL 擴展
sudo apt-get install openssl sudo apt-get install php-openssl
我們需要安裝 OpenSSL 擴展,才能在 PHP 中使用 OpenSSL。首先,我們需要安裝 OpenSSL 庫。然后,我們可以使用 apt-get 安裝 php-openssl 擴展。
生成和使用 CSR
$dn = array( "countryName" =>"US", "stateOrProvinceName" =>"Texas", "localityName" =>"Houston", "organizationName" =>"Acme Widgets Inc", "organizationalUnitName" =>"IT", "commonName" =>"www.example.com", "emailAddress" =>"webmaster@example.com" ); $csr = openssl_csr_new($dn, $privkey); openssl_csr_export($csr, $csrout);
我們可以使用 PHP 和 OpenSSL 擴展來生成 CSR。CSR 表示證書簽名請求(certificate signing request),是一個由使用者發送給證書頒發機構的文件,用于請求頒發數字證書。CSR 可以包括所有需要將包含在生成的數字證書中的信息,如發件人名稱和地址等。在上面的代碼示例中,$dn 表示用于生成 CSR 的信息;$privkey 變量應該包含您的私鑰。
加密和解密數據
$data = 'Hello, world!'; $key = openssl_random_pseudo_bytes(32); $iv = openssl_random_pseudo_bytes(16); $encrypted = openssl_encrypt( $data, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv ); $decrypted = openssl_decrypt( $encrypted, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv );
我們可以使用 OpenSSL 擴展來加密和解密數據。在上面的代碼示例中,$data 是我們要加密的數據;$key 是密鑰,可以使用 openssl_random_pseudo_bytes() 函數生成;$iv 是初始化向量,也可以使用 openssl_random_pseudo_bytes() 函數生成。我們使用 openssl_encrypt() 函數來加密數據,使用 openssl_decrypt() 函數來解密數據。
小結
在 Linux 系統下,我們可以使用 php 擴展 openssl 來訪問 OpenSSL。在本文中,我們已經學習了如何使用 OpenSSL 擴展來安裝 OpenSSL 擴展,如何生成和使用 CSR,以及如何加密和解密數據。