要使用PHP的openssl_pkey_new()函數進行數據加密傳輸,您需要遵循以下步驟:
下面是一個示例代碼:
<?php
// 生成RSA密鑰對
function generateKeyPair() {
$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"];
return array($privateKey, $publicKey);
}
// 加密數據
function encryptData($data, $publicKey) {
openssl_public_encrypt($data, $encryptedData, $publicKey);
return base64_encode($encryptedData);
}
// 解密數據
function decryptData($data, $privateKey) {
openssl_private_decrypt(base64_decode($data), $decryptedData, $privateKey);
return $decryptedData;
}
// 生成密鑰對
list($privateKey, $publicKey) = generateKeyPair();
// 原始數據
$originalData = "Hello, this is a secret message!";
// 加密數據
$encryptedData = encryptData($originalData, $publicKey);
echo "Encrypted data: " . $encryptedData . PHP_EOL;
// 解密數據
$decryptedData = decryptData($encryptedData, $privateKey);
echo "Decrypted data: " . $decryptedData . PHP_EOL;
?>
在這個示例中,我們首先生成了一個RSA密鑰對,然后使用公鑰加密原始數據,接著使用私鑰解密加密后的數據。請注意,這個示例僅用于演示目的,實際應用中您可能需要根據您的需求進行調整。
在實際應用中,您可能需要將加密后的數據通過HTTPS等安全方式傳輸給接收方。接收方收到數據后,可以使用相應的私鑰進行解密。這樣,只有擁有正確私鑰的接收方才能解密和訪問原始數據。