Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan penyulitan dan penyahsulitan data dalam projek PHP?

Bagaimana untuk melaksanakan penyulitan dan penyahsulitan data dalam projek PHP?

PHPz
PHPzasal
2023-11-02 12:15:291245semak imbas

Bagaimana untuk melaksanakan penyulitan dan penyahsulitan data dalam projek PHP?

Bagaimana untuk melaksanakan penyulitan dan penyahsulitan data dalam projek PHP?

Dengan perkembangan Internet, keselamatan data telah menjadi isu yang sangat penting. Dalam projek PHP, kami selalunya perlu mengendalikan beberapa data sensitif, seperti kata laluan pengguna, maklumat pengguna, dsb. Untuk melindungi data ini daripada pemerolehan berniat jahat, kami perlu menyulitkan dan menyahsulitnya. Artikel ini akan memperkenalkan cara melaksanakan penyulitan dan penyahsulitan data dalam projek PHP.

1. Algoritma penyulitan simetri
Algoritma penyulitan simetri ialah algoritma yang menggunakan kunci yang sama untuk penyulitan dan penyahsulitan. Algoritma penyulitan simetri biasa termasuk DES, AES, dsb. Dalam PHP, penyulitan simetri dan operasi penyahsulitan boleh dilaksanakan dengan menggunakan perpustakaan openssl. Berikut ialah contoh menyulitkan dan menyahsulit data menggunakan algoritma penyulitan simetri AES:

// Fungsi penyulitan
fungsi penyulitan($data , $ key) {

$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
$encrypted = openssl_encrypt($data, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
return base64_encode($iv . $encrypted);

}

// Fungsi penyahsulitan
fungsi nyahsulit($data, $key) {

rreee#🎜🎜 }# 🎜🎜#

// Ujian penyulitan dan penyahsulitan

$data = 'Hello, World!';

$key = 'testkey';
$encrypted = encrypt($ data, $key);
$decrypted = decrypted($encrypted, $key);

echo "Sebelum penyulitan: $data

";

echo "Selepas penyulitan: $encrypted
";
echo "Selepas penyahsulitan: $decrypted
";

?>

#🎜🎜🎜🎜 , Kami mentakrifkan fungsi penyulitan dan fungsi nyahsulit untuk menyulitkan dan menyahsulit data. Antaranya, fungsi penyulitan menggunakan fungsi openssl_encrypt untuk operasi penyulitan, dan fungsi nyahsulit menggunakan fungsi openssl_decrypt untuk operasi penyahsulitan. Dengan memanggil kedua-dua fungsi ini, anda boleh menyulitkan dan menyahsulit data dengan mudah.

2. Algoritma penyulitan asimetri

Algoritma penyulitan asimetri ialah algoritma yang menggunakan sepasang kunci untuk penyulitan dan penyahsulitan, termasuk kunci awam dan kunci peribadi. Algoritma penyulitan asimetri biasa termasuk RSA, DSA, dsb. Dalam PHP, penyulitan asimetri dan operasi penyahsulitan boleh dilaksanakan dengan menggunakan perpustakaan openssl. Berikut ialah contoh menggunakan algoritma penyulitan asimetri RSA untuk menyulitkan dan menyahsulit data:

// Jana pasangan kunci

$keyPair = openssl_pkey_new (array(

$data = base64_decode($data);
$iv = substr($data, 0, openssl_cipher_iv_length('aes-256-cbc'));
$data = substr($data, openssl_cipher_iv_length('aes-256-cbc'));
return openssl_decrypt($data, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);

));

// Dapatkan kunci peribadi dan kunci awam

openssl_pkey_export($keyPair);#🎜$private#Key publicKey = openssl_pkey_get_details($keyPair)['key'];

// Fungsi penyulitan
fungsi enkripsi($data, $publicKey) {
rreee#🎜}🎜 🎜 🎜#

// Fungsi penyahsulitan

fungsi menyahsulit($data, $privateKey) {

'private_key_bits' => 2048,
'private_key_type' => OPENSSL_KEYTYPE_RSA,

}

enkripsi# dan// 🎜 🎜#$data = 'Hello, World!';

$encrypted = encrypt($data, $publicKey);
$decrypted = decrypted($encrypted, $privateKey);

# 🎜 🎜#echo "Sebelum penyulitan: $data

";

echo "Selepas penyulitan: $encrypted

";
echo "Selepas penyahsulitan: #"decrypted#🎜 # 🎜🎜#
?>

Dalam contoh di atas, kami mula-mula menghasilkan pasangan kunci menggunakan fungsi openssl_pkey_new, kemudian menggunakan fungsi openssl_pkey_export untuk mendapatkan kunci persendirian dan menggunakan fungsi openssl_pkey_details untuk mendapatkan kunci peribadi kunci awam. Seterusnya, kami mentakrifkan fungsi penyulitan dan fungsi nyahsulit untuk menyulitkan dan menyahsulit data. Antaranya, fungsi penyulitan menggunakan fungsi openssl_public_encrypt untuk operasi penyulitan, dan fungsi nyahsulit menggunakan fungsi openssl_private_decrypt untuk operasi penyahsulitan. Begitu juga, dengan memanggil kedua-dua fungsi ini, anda boleh menyulitkan dan menyahsulit data dengan mudah.


Ringkasan
Artikel ini memperkenalkan cara melaksanakan penyulitan dan penyahsulitan data dalam projek PHP. Mula-mula, kami mempelajari cara melaksanakan operasi penyulitan dan penyahsulitan menggunakan algoritma penyulitan simetri, dan kemudian, kami belajar cara melaksanakan operasi penyulitan dan penyahsulitan menggunakan algoritma penyulitan asimetri. Dengan mengikuti perkembangan ini, kami boleh memastikan data sensitif selamat dan meningkatkan keselamatan projek kami.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan penyulitan dan penyahsulitan data dalam projek 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