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
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.
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.
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.
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.
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!