Penggunaan pustaka fungsi penyulitan dan penyahsulitan PHP
Apabila isu keselamatan rangkaian menjadi semakin ketara, penyulitan telah menjadi bahagian yang amat diperlukan dalam teknologi rangkaian moden. Dalam PHP, perpustakaan fungsi penyulitan dan penyahsulitan menyediakan banyak fungsi penyulitan dan penyahsulitan, yang boleh digunakan untuk memproses maklumat sensitif dan memastikan keselamatan data. Artikel ini akan memperkenalkan penggunaan pustaka fungsi penyulitan dan penyahsulitan PHP.
1. Fungsi penyulitan dan penyahsulitan yang biasa digunakan
penyulitan md5 ialah kaedah penyulitan tidak boleh diubah, selalunya digunakan untuk menyimpan kata laluan dan bacaan pruf Sahkan integriti fail. Penggunaannya sangat mudah, sebagai contoh:
$message = 'password'; $encrypted = md5($message);
penyulitan sha1 juga merupakan kaedah penyulitan tidak boleh diubah, dan penggunaannya serupa dengan penyulitan md5. Contohnya:
$message = 'password'; $encrypted = sha1($message);
penyulitan base64 ialah kaedah penyulitan boleh balik yang sesuai untuk pengekodan data binari ke dalam format aksara ASCII. Contohnya:
$message = 'password'; $encrypted = base64_encode($message);
penyahsulitan base64 boleh menggunakan fungsi base64_decode. Contohnya:
$encrypted = 'cGFzc3dvcmQ='; $message = base64_decode($encrypted);
Penyulitan AES menyediakan kaedah penyulitan boleh balik yang boleh digunakan untuk melindungi penghantaran dan storan data. Penggunaannya adalah seperti berikut:
$message = 'password'; $key = 'mysecretkey'; $encrypted = openssl_encrypt($message, 'AES-256-CBC', $key);
Antaranya, 'AES-256-CBC' ialah algoritma penyulitan, dan $key ialah kuncinya. Penyahsulitan AES boleh menggunakan fungsi openssl_decrypt. Contohnya:
$encrypted = 'G0TzOGxUWSJ2XOGVTYaZDFtB26oTVPqsIiL0FmzNVcA='; $key = 'mysecretkey'; $message = openssl_decrypt($encrypted, 'AES-256-CBC', $key);
Penyulitan RSA menyediakan penyulitan kunci awam dan kaedah penyahsulitan kunci persendirian, sesuai untuk senario penyulitan data biasa. Penggunaannya adalah seperti berikut:
Mula-mula jana kunci awam dan peribadi:
$privKey = openssl_pkey_new(array( 'private_key_bits' => 1024, 'private_key_type' => OPENSSL_KEYTYPE_RSA, )); openssl_pkey_export($privKey, $pkey); $pubKey = openssl_pkey_get_details($privKey); $pubKey = $pubKey['key'];
Kemudian gunakan kunci awam untuk menyulitkan:
$message = 'password'; $encrypted = ''; $success = openssl_public_encrypt($message, $encrypted, $pubKey);
Penyahsulitan RSA boleh menggunakan fungsi openssl_private_decrypt. Contohnya:
$encrypted = ''; $message = ''; $success = openssl_private_decrypt($encrypted, $message, $privKey);
2. Penggunaan modul penyulitan dan penyahsulitan
Dalam aplikasi praktikal, kami mungkin perlu menggunakan modul penyulitan dan penyahsulitan yang lengkap untuk mengendalikan keselamatan data. Dalam PHP, terdapat beberapa modul penyulitan dan penyahsulitan yang sangat baik, seperti mcrypt dan sodium. Berikut menerangkan cara menggunakan kedua-dua modul ini.
modul mcrypt ialah modul penyulitan dan penyahsulitan yang digunakan secara meluas dalam PHP, menyediakan pelbagai algoritma penyulitan simetri dan algoritma penyulitan asimetrik. Penggunaannya adalah seperti berikut:
Mula-mula tetapkan kunci dan vektor permulaan:
$key = 'mysecretkey'; $iv = mcrypt_create_iv( mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC), MCRYPT_RAND);
Kemudian gunakan fungsi mcrypt_encrypt untuk menyulitkan:
$message = 'password'; $encrypted = mcrypt_encrypt( MCRYPT_RIJNDAEL_256, $key, $message, MCRYPT_MODE_CBC, $iv );
penyahsulitan mcrypt boleh menggunakan fungsi mcrypt_decrypt. Contohnya:
$decrypted = mcrypt_decrypt( MCRYPT_RIJNDAEL_256, $key, $encrypted, MCRYPT_MODE_CBC, $iv ); $decrypted = rtrim($decrypted, ""); echo $decrypted;
modul natrium ialah modul penyulitan dan penyahsulitan yang diperkenalkan dalam PHP7 dan ke atas, menyediakan banyak ciri penyulitan lanjutan, seperti fungsi pencincangan kata laluan dan algoritma tandatangan digital, dsb. Penggunaannya adalah seperti berikut:
Pertama jana kunci:
$key = sodium_crypto_secretbox_keygen();
Kemudian gunakan fungsi sodium_crypto_secretbox untuk menyulitkan:
$message = 'password'; $nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES); $encrypted = sodium_crypto_secretbox($message, $nonce, $key);
Penyahsulitan sodium boleh menggunakan fungsi sodium_crypto_secretbox_open. Contohnya:
$decrypted = sodium_crypto_secretbox_open($encrypted, $nonce, $key); if ($decrypted === false) { throw new Exception('Failed to decrypt message'); } echo $decrypted;
3. Ringkasan
Hari ini, apabila keselamatan rangkaian semakin penting, penyulitan telah menjadi teknologi penting untuk melindungi privasi data. PHP menyediakan banyak perpustakaan dan modul fungsi penyulitan dan penyahsulitan Pembangun boleh memilih kaedah penyulitan yang paling sesuai mengikut keperluan yang berbeza untuk memastikan keselamatan data. Melalui pengenalan artikel ini, saya percaya bahawa pembaca telah menguasai penggunaan asas perpustakaan fungsi penyulitan dan penyahsulitan PHP dan penggunaan modul penyulitan dan penyahsulitan yang biasa digunakan.
Atas ialah kandungan terperinci Penggunaan pustaka fungsi penyulitan dan penyahsulitan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!