>백엔드 개발 >PHP 튜토리얼 >PHP 인터페이스와 ECharts를 사용하여 통계 차트의 데이터 암호화 및 암호 해독을 구현하는 방법

PHP 인터페이스와 ECharts를 사용하여 통계 차트의 데이터 암호화 및 암호 해독을 구현하는 방법

WBOY
WBOY원래의
2023-12-18 19:03:14829검색

PHP 인터페이스와 ECharts를 사용하여 통계 차트의 데이터 암호화 및 암호 해독을 구현하는 방법

웹 애플리케이션에서는 데이터와 추세를 표시하기 위해 통계 차트를 사용해야 하는 경우가 많습니다. 통계 차트 기능은 PHP 인터페이스와 ECharts를 사용하여 쉽게 구현할 수 있습니다. 그러나 때로는 보안을 보장하기 위해 민감한 데이터를 암호화해야 하므로 데이터를 암호화하고 해독해야 합니다. 이 기사에서는 PHP 인터페이스와 ECharts를 사용하여 통계 차트의 데이터 암호화 및 암호 해독을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다.

  1. 데이터 암호화

PHP에서는 openssl_encrypt 함수를 사용하여 민감한 데이터를 암호화할 수 있습니다. 이 함수는 암호화 알고리즘, 키, 일반 텍스트, 암호화 옵션이라는 네 가지 매개변수를 허용합니다. 다음은 간단한 암호화 함수의 예입니다.

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

이 함수를 호출할 때 암호화할 일반 텍스트와 암호화 키를 전달합니다. 예:

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

암호화 후 $ciphertext를 데이터베이스에 저장하거나 나중에 사용할 수 있도록 클라이언트에 보냅니다.

  1. Decrypt data

openssl_decrypt 함수를 사용하여 암호화된 데이터를 해독할 수 있습니다. 이 함수는 암호 해독 알고리즘, 키, 암호문 및 암호 해독 옵션이라는 네 가지 매개변수를 허용합니다. 다음은 간단한 복호화 함수의 예입니다.

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

이 함수를 호출할 때 복호화할 암호문과 복호화 키를 전달합니다. 예:

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

$plaintext는 암호화 전의 민감한 데이터입니다. 키가 올바르지 않거나 데이터가 변조된 경우 함수는 null을 반환합니다.

  1. ECharts를 사용하여 통계 차트 표시

ECharts는 사용자와 상호 작용할 수 있는 동적 통계 차트를 쉽게 만들 수 있는 JavaScript 기반 오픈 소스 시각화 라이브러리입니다. 다음은 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>

이 코드는 A, B, C, D 및 E 사이에 데이터가 표시되는 "내 차트"라는 막대 차트를 생성합니다. 5, 20, 36, 10, 10. ECharts 사용의 장점 중 하나는 PHP 및 기타 백엔드 언어와 함께 사용하여 서버에서 데이터를 동적으로 로드할 수 있다는 것입니다.

  1. ECharts로 암호화된 데이터 사용

ECharts로 암호화된 데이터를 사용하려면 암호문을 클라이언트로 전송해야 합니다. 다음은 PHP 및 JavaScript를 사용하여 ECharts에 암호화된 데이터를 사용하는 간단한 예입니다.



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

이 코드는 "My Chart"라는 막대 차트를 생성하지만 데이터를 읽을 때 중개인으로 "data.php"를 거쳐야 합니다. 이 방법을 사용하려면 "data.php" 파일을 생성해야 합니다.

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

이 코드는 암호화된 암호문의 데이터를 해독하고 ECharts에서 사용할 JSON 형식의 데이터를 반환합니다. 이 예에서는 데이터가 하드코딩되어 있지만 서버에서 쉽게 가져올 수 있습니다.

ECharts와 데이터 암호화 및 암호 해독을 결합하면 민감한 데이터의 보호를 극대화하면서 눈길을 끄는 통계 차트를 유연하고 안전하게 표시할 수 있습니다.

위 내용은 PHP 인터페이스와 ECharts를 사용하여 통계 차트의 데이터 암호화 및 암호 해독을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.