Maison  >  Article  >  développement back-end  >  Comment utiliser l'interface PHP et ECharts pour implémenter le cryptage des données et le décryptage des graphiques statistiques

Comment utiliser l'interface PHP et ECharts pour implémenter le cryptage des données et le décryptage des graphiques statistiques

WBOY
WBOYoriginal
2023-12-18 19:03:14809parcourir

Comment utiliser linterface PHP et ECharts pour implémenter le cryptage des données et le décryptage des graphiques statistiques

Dans les applications Web, il est souvent nécessaire d'utiliser des graphiques statistiques pour afficher les données et les tendances. La fonction de graphique statistique peut être facilement implémentée à l'aide de l'interface PHP et d'ECharts. Cependant, les données sensibles doivent parfois être cryptées pour garantir la sécurité. Les données doivent donc être cryptées et déchiffrées. Cet article présentera comment utiliser l'interface PHP et ECharts pour implémenter le cryptage et le déchiffrement des données de graphiques statistiques, et fournira des exemples de code spécifiques.

  1. Crypter les données

En PHP, les données sensibles peuvent être cryptées à l'aide de la fonction openssl_encrypt. Cette fonction accepte quatre paramètres : algorithme de chiffrement, clé, texte en clair et options de chiffrement. Voici un exemple de fonction de chiffrement simple :

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 );
}

Lors de l'appel de cette fonction, transmettez le texte en clair à chiffrer ainsi que la clé de chiffrement. Par exemple :

$encryption_key = "my_secret_key";
$plaintext = "sensitive_data";
$ciphertext = encrypt($plaintext, $encryption_key);

Après le cryptage, nous enregistrons le $ciphertext dans la base de données ou l'envoyons au client pour une utilisation ultérieure.

  1. Déchiffrer les données

Nous pouvons utiliser la fonction openssl_decrypt pour décrypter les données cryptées. Cette fonction accepte quatre paramètres : algorithme de décryptage, clé, texte chiffré et options de décryptage. Voici un exemple de fonction de décryptage simple :

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;
}

Lors de l'appel de cette fonction, transmettez le texte chiffré à déchiffrer ainsi que la clé de décryptage. Par exemple :

$encryption_key = "my_secret_key";
$plaintext = decrypt($ciphertext, $encryption_key);

$plaintext correspond aux données sensibles avant le cryptage. Si la clé est incorrecte ou si les données ont été falsifiées, la fonction renvoie null.

  1. Utilisez ECharts pour afficher des graphiques statistiques

ECharts est une bibliothèque de visualisation open source basée sur JavaScript qui peut facilement créer des graphiques statistiques dynamiques pouvant interagir avec les utilisateurs. Voici un exemple simple montrant comment afficher un graphique à barres de base à l'aide d'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>

Ce code créera un graphique à barres appelé "Mon graphique" avec des données affichées entre A, B, C, D et E, avec des valeurs de 5, 20, 36, 10 et 10. L'un des avantages de l'utilisation d'ECharts est qu'il peut être utilisé avec PHP et d'autres langages backend pour charger dynamiquement les données du serveur.

  1. Utilisez des données cryptées avec ECharts

Pour utiliser des données cryptées avec ECharts, le texte chiffré doit être envoyé au client. Voici un exemple simple d'utilisation de données chiffrées avec ECharts en utilisant PHP et 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>

Ce code va créer un histogramme appelé "My Chart" mais nécessite de passer par "data.php" comme intermédiaire lors de la lecture des données. Pour utiliser cette méthode, le fichier "data.php" doit être créé :

<?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);
?>

Ce code déchiffrera les données du texte chiffré et renverra les données au format JSON qui seront utilisées dans ECharts. Dans cet exemple, les données sont codées en dur, mais elles peuvent être facilement récupérées depuis le serveur.

En combinant le cryptage et le décryptage des données avec ECharts, vous pouvez présenter de manière flexible et sécurisée des graphiques statistiques accrocheurs tout en maximisant la protection des données sensibles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn