Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pengenalan kepada penyulitan data sensitif dan teknologi penyahsulitan dalam PHP

Pengenalan kepada penyulitan data sensitif dan teknologi penyahsulitan dalam PHP

王林
王林asal
2023-07-05 11:09:071497semak imbas

Pengenalan kepada penyulitan data sensitif dan teknologi penyahsulitan dalam PHP

Dengan perkembangan pesat Internet, isu keselamatan maklumat telah menjadi semakin ketara. Apabila membangunkan aplikasi web, melindungi data sensitif pengguna adalah penting. Untuk memastikan keselamatan data, data sensitif selalunya perlu disulitkan dan dinyahsulit. Artikel ini akan memperkenalkan teknik penyulitan dan penyahsulitan data sensitif yang biasa digunakan dalam PHP dan memberikan contoh kod yang sepadan.

1. Teknologi penyulitan

  1. Penyulitan simetri

Algoritma penyulitan simetri menggunakan kunci yang sama untuk penyulitan dan penyahsulitan. Dalam PHP, penyulitan simetri boleh dilaksanakan menggunakan sambungan mcrypt atau sambungan openssl.

Kod sampel:

<?php
$key = "abc123";  // 密钥

function encrypt($data, $key) {
    $encrypted_text = openssl_encrypt($data, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, '1234567890abcdef');
    return base64_encode($encrypted_text);
}

function decrypt($encrypted_data, $key) {
    $encrypted_text = base64_decode($encrypted_data);
    return openssl_decrypt($encrypted_text, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, '1234567890abcdef');
}

$original_data = "Hello world!";
$encrypted_data = encrypt($original_data, $key);
$decrypted_data = decrypt($encrypted_data, $key);

echo "原始数据:".$original_data."<br>";
echo "加密后的数据:".$encrypted_data."<br>";
echo "解密后的数据:".$decrypted_data."<br>";
?>
  1. Penyulitan asimetrik

Algoritma penyulitan asimetri menggunakan sepasang kunci untuk penyulitan dan penyahsulitan, iaitu kunci awam dan kunci persendirian. Dalam PHP, penyulitan asimetri boleh dilaksanakan menggunakan sambungan openssl.

Kod sampel:

<?php
// 生成公钥和私钥
$config = array(
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
);

$res = openssl_pkey_new($config);
openssl_pkey_export($res, $private_key);
$public_key = openssl_pkey_get_details($res)["key"];

function encrypt($data, $public_key) {
    openssl_public_encrypt($data, $encrypted, $public_key);
    return base64_encode($encrypted);
}

function decrypt($encrypted_data, $private_key) {
    openssl_private_decrypt(base64_decode($encrypted_data), $decrypted, $private_key);
    return $decrypted;
}

$original_data = "Hello world!";
$encrypted_data = encrypt($original_data, $public_key);
$decrypted_data = decrypt($encrypted_data, $private_key);

echo "原始数据:".$original_data."<br>";
echo "加密后的数据:".$encrypted_data."<br>";
echo "解密后的数据:".$decrypted_data."<br>";
?>

2. Teknologi penyahsulitan

Sama ada penyulitan simetri atau penyulitan asimetri, penyahsulitan adalah penting. Dalam PHP, anda boleh menggunakan fungsi penyahsulitan yang sepadan untuk menyahsulit data yang disulitkan.

  1. Penyahsulitan simetri

Penyahsulitan simetri menggunakan kunci yang sama untuk penyahsulitan. Dalam contoh penyulitan simetri di atas, data yang disulitkan boleh dinyahsulit menggunakan kunci yang sama.

  1. Penyahsulitan asimetri

Penyahsulitan asimetri memerlukan penggunaan kunci peribadi untuk menyahsulit data yang disulitkan. Dalam contoh penyulitan asimetri di atas, data yang disulitkan boleh dinyahsulit menggunakan kunci persendirian.

3. Nota

  1. Keselamatan kunci

Keselamatan kunci ialah asas untuk penyulitan dan penyahsulitan. Sila pastikan bahawa kunci disimpan dengan selamat untuk mengelakkan akses haram.

  1. Integriti Data

Semasa proses penyulitan dan penyahsulitan, integriti data perlu dipastikan. Integriti data boleh disahkan dengan melaksanakan Kod Pengesahan Mesej (MAC).

  1. Pemilihan algoritma penyulitan

Apabila memilih algoritma penyulitan, anda harus memilihnya berdasarkan keperluan dan keselamatan sebenar. Algoritma penyulitan yang biasa digunakan termasuk AES, DES, RSA, dsb.

Ringkasan:

Artikel ini memperkenalkan penyulitan data sensitif dan teknologi penyahsulitan dalam PHP, termasuk penyulitan simetri dan penyulitan asimetrik. Keselamatan data sensitif boleh dipastikan melalui penggunaan teknologi penyulitan yang betul. Apabila membangunkan aplikasi web, adalah penting untuk melindungi data sensitif pengguna Saya percaya bahawa teknologi yang diperkenalkan dalam artikel ini boleh membantu pembaca meningkatkan keselamatan data.

Atas ialah kandungan terperinci Pengenalan kepada penyulitan data sensitif dan teknologi penyahsulitan dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn