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

Cara melaksanakan operasi penyulitan dan penyahsulitan asas menggunakan PHP

PHPz
Lepaskan: 2023-06-22 14:54:01
asal
1416 orang telah melayarinya

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);
Salin selepas log masuk
  1. sha1:

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

$password = '123456';
$encrypted_password = sha1($password);
Salin selepas log masuk
  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解码
Salin selepas log masuk

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);
Salin selepas log masuk

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);
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan