Baru-baru ini, semakin banyak laman web telah mula menggunakan rangka kerja thinkphp untuk membangun dan menyelenggara laman web mereka. Ini kerana rangka kerja thinkphp mempunyai banyak kelebihan, seperti pembelajaran yang mudah, enjin templat yang berkuasa, keselamatan yang tinggi, dll. Walau bagaimanapun, semasa proses pembangunan, anda perlu memberi perhatian kepada isu keselamatan data Salah satu tugas penting ialah menyulitkan data. Artikel ini akan meneroka cara menyulitkan data dalam thinkphp.
Fungsi penyulitan yang disertakan dengan rangka kerja thinkphp ialah thinkhelperHash::make($str). Fungsi ini boleh digunakan untuk menyulitkan rentetan ($str).
Penggunaan adalah seperti berikut:
$str = 'Hello World'; $encrypt_str = thinkhelperHash::make($str);
Rentetan yang disulitkan $encrypt_str, iaitu rentetan rawak 40 digit. Kaedah ini ialah kaedah penyulitan mudah berdasarkan algoritma cincang, yang mencukupi untuk beberapa senario mudah.
Selain fungsi penyulitan sistem sendiri, thinkphp juga menyokong pengenalan perpustakaan pihak ketiga untuk penyulitan. Sebagai contoh, anda boleh menggunakan natrium perpustakaan sambungan penyulitan PHP untuk menyulitkan data.
Kaedah penggunaan adalah seperti berikut:
Mula-mula anda perlu memasang perpustakaan sambungan sodium, gunakan arahan:
pecl install libsodium
Selepas pemasangan selesai, anda perlu menambah satu baris ke fail php.ini:
extension=sodium.so
Kemudian gunakan fungsi penyulitan dalam kod untuk menyulitkan Dalam perpustakaan sodium, fungsi penyulitan ialah sodium_crypto_secretbox($str, $nonce, $secretKey).
Antaranya, $str ialah rentetan yang perlu disulitkan, $nonce ialah rentetan unik dan $secretKey ialah kuncinya.
Penggunaan adalah seperti berikut:
$str = 'Hello World'; $nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES); $secretKey = sodium_crypto_secretbox_keygen(); $encrypt_str = sodium_crypto_secretbox($str, $nonce, $secretKey);
$encrypt_str yang disulitkan boleh dinyahsulit menggunakan kunci yang sama dan nonce.
Jika anda mahukan kaedah penyulitan yang lebih selamat, anda boleh menyesuaikan fungsi penyulitan atau menghubungi perpustakaan pihak ketiga untuk penyulitan.
Kaedah menggunakan fungsi penyulitan tersuai adalah seperti berikut:
function my_encrypt($data, $key){ $iv = mcrypt_create_iv( mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC), MCRYPT_DEV_URANDOM ); $encrypted = base64_encode( $iv . mcrypt_encrypt( MCRYPT_RIJNDAEL_128, hash('sha256', $key, true), $data, MCRYPT_MODE_CBC, $iv ) ); return $encrypted; }
Ini ialah fungsi penyulitan berdasarkan algoritma aes-256-ctr, yang boleh menyesuaikan kunci dan menyulitkan data. Walau bagaimanapun, perlu diingatkan bahawa mcrypt telah ditamatkan dalam versi PHP 7.2, jadi anda perlu mencari kaedah alternatif sendiri.
Ringkasan
Keselamatan data ialah isu yang mesti dipertimbangkan semasa pembangunan tapak web. Dalam rangka kerja thinkphp, keselamatan data boleh dipastikan melalui fungsi penyulitan sistem sendiri, perpustakaan pihak ketiga atau fungsi penyulitan tersuai. Walau bagaimanapun, adalah perlu untuk memilih kaedah penyulitan yang sesuai mengikut keperluan khusus untuk mencapai kesan terbaik.
Atas ialah kandungan terperinci kaedah penyulitan thinkphp. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!