Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara melaksanakan operasi penyulitan dan penyahsulitan asas menggunakan PHP

Cara melaksanakan operasi penyulitan dan penyahsulitan asas menggunakan PHP

PHPz
PHPzasal
2023-06-22 14:09:381351semak imbas

Dalam persekitaran Internet moden, kerahsiaan data telah menjadi salah satu faktor terpenting. Atas sebab ini, pelbagai teknologi penyulitan juga telah digunakan secara meluas. Dalam pembangunan Web, bahasa PHP telah menjadi bahasa pengaturcaraan yang sangat popular kerana kemudahan penggunaan dan kecekapannya. Oleh itu, adalah sangat praktikal dan perlu untuk memahami cara menggunakan PHP untuk melaksanakan operasi penyulitan dan penyahsulitan asas. Artikel ini akan memberikan beberapa penyelesaian asas kepada masalah ini.

1. Apakah itu teknologi penyulitan?

Teknologi penyulitan merujuk kepada proses melaksanakan beberapa operasi khas dan pemprosesan pada data untuk menjadikannya tidak boleh dibaca (atau sukar dibaca). Penyulitan boleh melindungi keselamatan data dengan berkesan dan mengelakkan kebocoran data dan gangguan berniat jahat. Operasi penyulitan biasanya termasuk langkah berikut: input data, pemprosesan algoritma penyulitan, penjanaan kunci, output teks sifir, dsb.

2. Teknologi penyulitan yang biasa digunakan dalam PHP

  1. md5:

MD5 ialah algoritma penyulitan, dan PHP juga menyediakan fungsi yang sepadan operasi. Contohnya:

$password = '123456';
$encrypted_password = md5($password);
  1. sha1:

Serupa dengan MD5, sha1 juga merupakan algoritma penyulitan biasa. Penggunaannya juga sangat mudah, contohnya:

$password = '123456';
$encrypted_password = sha1($password);
  1. base64:

Base64 ialah kaedah pengekodan yang menukar data binari kepada aksara ASCII, sering digunakan dalam protokol teks Transfer data binari. PHP juga menyediakan fungsi yang sepadan untuk melaksanakan operasi penyulitan dan penyahsulitan Base64. Contohnya:

$str = 'Hello, world!';
$encoded_str = base64_encode($str);    // 进行Base64编码
$decoded_str = base64_decode($encoded_str);    // 进行Base64解码

3 Cara menggunakan PHP untuk operasi penyulitan dan penyahsulitan

Walaupun teknologi penyulitan di atas boleh melindungi keselamatan data, semuanya adalah kaedah penyulitan sehala, iaitu. untuk mengatakan, Setelah data disulitkan, sukar untuk dipulihkan. Dalam sesetengah senario, perlu menggunakan kaedah penyulitan dua hala, iaitu kaedah yang boleh menyulitkan dan menyahsulit, seperti menyulitkan kata laluan pengguna.

  1. Penyulitan simetri:

Penyulitan simetri merujuk kepada penggunaan kunci yang sama untuk operasi penyulitan dan penyahsulitan. Dalam PHP, perpustakaan sambungan openssl menyediakan sokongan untuk penyulitan simetri. Contohnya:

$data = 'Hello, world!';
$key = '123456';
$method = 'AES-256-CBC';

// 加密
$iv = openssl_random_pseudo_bytes(16);
$ciphertext = openssl_encrypt($data, $method, $key, OPENSSL_RAW_DATA, $iv);

// 解密
$plaintext = openssl_decrypt($ciphertext, $method, $key, OPENSSL_RAW_DATA, $iv);

Algoritma AES-256-CBC digunakan di sini untuk operasi penyulitan dan penyahsulitan, dan 16-bait IV (vektor permulaan) yang dijana secara rawak digunakan untuk mengukuhkan kekuatan penyulitan. Perlu diingatkan bahawa IV juga perlu dihantar bersama-sama dengan penghantaran data untuk melaksanakan operasi penyahsulitan.

  1. Penyulitan asimetri:

Kaedah penyulitan asimetri merujuk kepada penggunaan sepasang kunci, masing-masing dipanggil kunci awam dan kunci persendirian, untuk operasi penyulitan dan penyahsulitan. Kunci awam boleh didedahkan kepada umum dan digunakan untuk menyulitkan data, manakala kunci peribadi hanya diketahui oleh anda dan digunakan untuk menyahsulit data. Dalam PHP, fungsi openssl yang sepadan juga disediakan untuk melaksanakan operasi penyulitan asimetri. Contohnya:

$data = 'Hello, world!';
$keypair = openssl_pkey_new();    // 生成密钥对
openssl_pkey_export($keypair, $private_key);    // 导出私钥
$pub_key = openssl_pkey_get_details($keypair)["key"];    // 导出公钥

// 加密
openssl_public_encrypt($data, $encrypted, $pub_key);

// 解密
openssl_private_decrypt($encrypted, $decrypted, $private_key);

Pasangan kunci baharu dijana di sini, menggunakan kunci awam untuk penyulitan semasa menyulitkan data dan kunci peribadi untuk penyahsulitan semasa menyahsulit data.

Ringkasnya, PHP menyediakan sokongan yang kaya dan mudah untuk operasi penyulitan dan penyahsulitan dalam pembangunan web, dan terdapat juga banyak perpustakaan sambungan yang berkuasa (seperti openssl) yang boleh membantu pembangun melaksanakan fungsi penyulitan dan penyahsulitan dengan mudah. Walau bagaimanapun, perlu diingatkan bahawa kaedah dan algoritma penyulitan yang berbeza mempunyai ciri, kelebihan dan keburukan yang berbeza, dan pembangun harus memilih kaedah penyulitan yang sesuai berdasarkan senario aplikasi tertentu.

Atas ialah kandungan terperinci Cara melaksanakan operasi penyulitan dan penyahsulitan asas menggunakan 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
Artikel sebelumnya:Bagaimana untuk melindungi PHPArtikel seterusnya:Bagaimana untuk melindungi PHP