Rumah >pembangunan bahagian belakang >tutorial php >Cara menggunakan antara muka php dan ECharts untuk melaksanakan penyulitan data dan penyahsulitan carta statistik
Dalam aplikasi web, selalunya perlu menggunakan carta statistik untuk memaparkan data dan arah aliran. Fungsi carta statistik boleh dilaksanakan dengan mudah menggunakan antara muka PHP dan ECharts. Walau bagaimanapun, kadangkala data sensitif perlu disulitkan untuk memastikan keselamatan, jadi data perlu disulitkan dan dinyahsulit. Artikel ini akan memperkenalkan cara menggunakan antara muka PHP dan ECharts untuk melaksanakan penyulitan data dan penyahsulitan carta statistik, dan menyediakan contoh kod khusus.
Dalam PHP, data sensitif boleh disulitkan menggunakan fungsi openssl_encrypt. Fungsi ini menerima empat parameter: algoritma penyulitan, kunci, teks biasa dan pilihan penyulitan. Berikut ialah contoh fungsi penyulitan mudah:
function encrypt($plaintext, $encryption_key) { $cipher = "AES-128-CBC"; $ivlen = openssl_cipher_iv_length($cipher); $iv = openssl_random_pseudo_bytes($ivlen); $ciphertext_raw = openssl_encrypt($plaintext, $cipher, $encryption_key, $options=OPENSSL_RAW_DATA, $iv); $hmac = hash_hmac('sha256', $ciphertext_raw, $encryption_key, $as_binary=true); return base64_encode( $iv.$hmac.$ciphertext_raw ); }
Apabila memanggil fungsi ini, hantar teks biasa untuk disulitkan dan kunci penyulitan. Contohnya:
$encryption_key = "my_secret_key"; $plaintext = "sensitive_data"; $ciphertext = encrypt($plaintext, $encryption_key);
Selepas penyulitan, kami menyimpan $ciphertext dalam pangkalan data atau menghantarnya kepada pelanggan untuk kegunaan kemudian.
Kita boleh menggunakan fungsi openssl_decrypt untuk menyahsulit data yang disulitkan. Fungsi ini menerima empat parameter: algoritma penyahsulitan, kunci, teks sifir dan pilihan penyahsulitan. Berikut ialah contoh fungsi penyahsulitan mudah:
function decrypt($ciphertext, $encryption_key) { $c = base64_decode($ciphertext); $cipher = "AES-128-CBC"; $ivlen = openssl_cipher_iv_length($cipher); $iv = substr($c, 0, $ivlen); $hmac = substr($c, $ivlen, $sha2len=32); $ciphertext_raw = substr($c, $ivlen+$sha2len); $calcmac = hash_hmac('sha256', $ciphertext_raw, $encryption_key, $as_binary=true); if (!hash_equals($hmac, $calcmac)) { return null; } $plaintext = openssl_decrypt($ciphertext_raw, $cipher, $encryption_key, $options=OPENSSL_RAW_DATA, $iv); return $plaintext; }
Apabila memanggil fungsi ini, hantarkan teks sifir untuk dinyahsulit dan kunci penyahsulitan. Contohnya:
$encryption_key = "my_secret_key"; $plaintext = decrypt($ciphertext, $encryption_key);
$plaintext ialah data sensitif sebelum penyulitan. Jika kunci tidak betul atau data telah diusik, fungsi tersebut akan kembali batal.
ECharts ialah perpustakaan visualisasi sumber terbuka berasaskan JavaScript yang boleh mencipta carta statistik dinamik dengan mudah yang boleh berinteraksi dengan pengguna. Berikut ialah contoh mudah yang menunjukkan cara memaparkan carta bar asas menggunakan ECharts:
<script src="https://cdn.staticfile.org/echarts/4.7.0/echarts.min.js"></script> <script> var myChart = echarts.init(document.getElementById('chart')); var option = { title: { text: 'My Chart' }, tooltip: {}, xAxis: { data: ['A', 'B', 'C', 'D', 'E'] }, yAxis: {}, series: [{ name: 'Data', type: 'bar', data: [5, 20, 36, 10, 10] }] }; myChart.setOption(option); </script> <div id="chart" style="height: 400px;"></div>
Kod ini akan mencipta carta bar yang dipanggil "Carta Saya" dengan data dipaparkan antara A, B, C, D dan E , dengan nilai 5, 20, 36, 10 dan 10. Salah satu kelebihan menggunakan ECharts ialah ia boleh digunakan dengan PHP dan bahasa belakang lain untuk memuatkan data secara dinamik dari pelayan.
Untuk menggunakan data yang disulitkan dengan ECharts, teks sifir perlu dihantar kepada pelanggan. Berikut ialah contoh mudah menggunakan data yang disulitkan dengan ECharts menggunakan PHP dan JavaScript:
<script> var myChart = echarts.init(document.getElementById('chart')); var url = "data.php?ciphertext=<?php echo $ciphertext; ?>"; myChart.showLoading(); $.getJSON(url, function(data) { myChart.hideLoading(); myChart.setOption({ title: { text: 'My Chart' }, tooltip: {}, xAxis: { data: data.labels }, yAxis: {}, series: [{ name: 'Data', type: 'bar', data: data.values }] }); }); </script>
Kod ini akan mencipta carta bar yang dipanggil "Carta Saya" tetapi memerlukan melalui "data.php" sebagai orang tengah semasa membaca data . Untuk menggunakan kaedah ini, fail "data.php" perlu dibuat:
<?php $encryption_key = "my_secret_key"; $ciphertext = $_GET["ciphertext"]; $plaintext = decrypt($ciphertext, $encryption_key); $data = array( "labels" => array("A", "B", "C", "D", "E"), "values" => array(5, 20, 36, 10, 10) ); echo json_encode($data); ?>
Kod ini akan menyahsulit data daripada teks sifir yang disulitkan dan mengembalikan data berformat JSON yang akan digunakan dalam ECharts. Dalam contoh ini, data dikodkan keras, tetapi ia boleh diambil dengan mudah daripada pelayan.
Dengan menggabungkan penyulitan data dan penyahsulitan dengan ECharts, anda boleh menyampaikan carta statistik yang menarik perhatian secara fleksibel dan selamat sambil memaksimumkan perlindungan data sensitif.
Atas ialah kandungan terperinci Cara menggunakan antara muka php dan ECharts untuk melaksanakan penyulitan data dan penyahsulitan carta statistik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!