Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan antara muka php dan ECharts untuk melaksanakan penyulitan data dan penyahsulitan carta statistik

Cara menggunakan antara muka php dan ECharts untuk melaksanakan penyulitan data dan penyahsulitan carta statistik

WBOY
WBOYasal
2023-12-18 19:03:14809semak imbas

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.

  1. Sulitkan data

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.

  1. Nyahsulit data

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.

  1. Gunakan ECharts untuk memaparkan carta statistik

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.

  1. Gunakan data yang disulitkan dengan ECharts

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!

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