Information Security 4 min read

How to Secure Data Transmission with PHP: HTTPS, Symmetric and Asymmetric Encryption

This article explains why encrypting data transmission is essential, introduces HTTPS, demonstrates how to apply symmetric encryption algorithms like AES in PHP, and shows how to use PHP's OpenSSL extension for asymmetric encryption, providing practical code examples and key‑management tips.

php中文网 Courses
php中文网 Courses
php中文网 Courses
How to Secure Data Transmission with PHP: HTTPS, Symmetric and Asymmetric Encryption

As the internet evolves, securing data transmission becomes critical because unencrypted data can be intercepted, leading to privacy breaches or tampering.

PHP, a widely used server‑side language, offers several methods to protect communications.

1. Use HTTPS

HTTPS, based on the SSL/TLS protocol, adds an encryption layer between HTTP and TCP, effectively preventing man‑in‑the‑middle attacks and data theft. PHP websites can enable HTTPS by configuring the web server and site to use HTTPS.

2. Use Symmetric Encryption Algorithms

Symmetric encryption algorithms use the same key for encryption and decryption. Common algorithms such as AES, DES, and 3DES can be employed in PHP; the key must be agreed upon in advance and kept secure.

Below is a PHP example that encrypts and decrypts data using AES‑128‑ECB:

$key = "密钥"; // 密钥
$data = "待加密数据"; // 待加密的数据

// 加密
$encryptedData = openssl_encrypt($data, 'AES-128-ECB', $key, OPENSSL_RAW_DATA);

// 解密
$decryptedData = openssl_decrypt($encryptedData, 'AES-128-ECB', $key, OPENSSL_RAW_DATA);

3. Use Asymmetric Encryption Algorithms

Asymmetric encryption uses a pair of keys: a public key for encryption and a private key for decryption. The sender encrypts data with the public key, and the receiver decrypts it with the private key, providing authentication and integrity without transmitting the private key.

PHP can perform asymmetric encryption via the OpenSSL extension. The following example generates an RSA key pair, encrypts data with the public key, and decrypts it with the private key:

// 生成密钥对
$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)["key"];

$data = "待加密数据"; // 待加密的数据

// 加密
if (openssl_public_encrypt($data, $encryptedData, $publicKey)) {
    // 解密
    if (openssl_private_decrypt($encryptedData, $decryptedData, $privateKey)) {
        echo $decryptedData;
    }
}

By combining HTTPS, symmetric encryption for confidentiality, and asymmetric encryption for authentication and integrity, and by managing keys securely (e.g., regular key rotation), PHP applications can ensure safe data transmission.

PHPEncryptionHTTPSdata securityasymmetric encryptionSymmetric Encryption
php中文网 Courses
Written by

php中文网 Courses

php中文网's platform for the latest courses and technical articles, helping PHP learners advance quickly.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.