溫馨提示×

openssl_pkey_new在PHP加密中的具體應用

PHP
小樊
84
2024-09-05 02:05:04
欄目: 云計算

openssl_pkey_new() 是 PHP 中 OpenSSL 擴展提供的一個函數(shù),用于生成新的公鑰和私鑰對

以下是使用 openssl_pkey_new() 函數(shù)創(chuàng)建 RSA 密鑰對并進行加密和解密操作的示例:

<?php
// 創(chuàng)建 RSA 密鑰對
$config = array(
    "digest_alg" => "sha512",
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
);
$res = openssl_pkey_new($config);

// 獲取私鑰
openssl_pkey_export($res, $privateKey);

// 獲取公鑰
$publicKey = openssl_pkey_get_details($res);
$publicKey = $publicKey["key"];

// 原始數(shù)據(jù)
$data = "Hello, OpenSSL!";

// 使用公鑰加密數(shù)據(jù)
openssl_public_encrypt($data, $encryptedData, $publicKey);

// 使用私鑰解密數(shù)據(jù)
openssl_private_decrypt($encryptedData, $decryptedData, $privateKey);

echo "Original data: " . $data . "\n";
echo "Encrypted data: " . base64_encode($encryptedData) . "\n";
echo "Decrypted data: " . $decryptedData . "\n";
?>

在這個示例中,我們首先使用 openssl_pkey_new() 函數(shù)創(chuàng)建了一個 RSA 密鑰對。然后,我們使用 openssl_pkey_export() 函數(shù)導出私鑰,并使用 openssl_pkey_get_details() 函數(shù)獲取公鑰。接下來,我們使用 openssl_public_encrypt() 函數(shù)對原始數(shù)據(jù)進行加密,并使用 openssl_private_decrypt() 函數(shù)對加密后的數(shù)據(jù)進行解密。最后,我們輸出原始數(shù)據(jù)、加密后的數(shù)據(jù)和解密后的數(shù)據(jù)。

0