>백엔드 개발 >PHP 튜토리얼 >PHP에서 OpenSSL을 사용한 인증서 생성 및 암호화 및 복호화에 대한 자세한 설명

PHP에서 OpenSSL을 사용한 인증서 생성 및 암호화 및 복호화에 대한 자세한 설명

墨辰丷
墨辰丷원래의
2018-05-26 15:14:111342검색

이 글은 주로 OpenSSL을 사용하여 PHP에서 인증서를 생성하고 암호화 및 복호화하는 방법을 소개합니다. 필요한 친구는 이를 참고할 수 있습니다.

OpenSSL 확장에 따라 다름

/*加密解密*/
function authcode($string, $operation = 'E') {
  $ssl_public = file_get_contents(DATA_PATH."/conf/cert_public.key");
  $ssl_private = file_get_contents(DATA_PATH."/conf/cert_private.pem");
  $pi_key = openssl_pkey_get_private($ssl_private);//这个函数可用来判断私钥是否是可用的,可用返回资源id Resource id
  $pu_key = openssl_pkey_get_public($ssl_public);//这个函数可用来判断公钥是否是可用的
  if(false == ($pi_key || $pu_key)) return '证书错误';
  $data = "";
  if($operation=='D'){
    openssl_private_decrypt(base64_decode($string),$data,$pi_key);//私钥解密
  }else{
    openssl_public_encrypt($string,$data,$pu_key);//公钥加密
    $data = base64_encode($data);
  }
  return $data;
}
/*生成证书*/
function exportOpenSSLFile(){
  $config = array(
    "digest_alg"    => "sha512",
    "private_key_bits" => 4096,           //字节数  512 1024 2048  4096 等
    "private_key_type" => OPENSSL_KEYTYPE_RSA,   //加密类型
  );
  $res = openssl_pkey_new($config);
  if($res == false) return false;
  openssl_pkey_export($res, $private_key);
  $public_key = openssl_pkey_get_details($res);
  $public_key = $public_key["key"];
  file_put_contents(DATA_PATH."/conf/cert_public.key",$public_key);
  file_put_contents(DATA_PATH."/conf/cert_private.pem",$private_key);
  openssl_free_key($res);
}

위는 이 글의 전체 내용입니다. 글이 모든 분들의 학습에 도움이 되었으면 좋겠습니다.


관련 권장 사항:

PHP는 OpenSSL을 사용하여 인증서를 생성하고 암호화 및 암호 해독

PHP는 DES암호화 및 암호 해독완전한 캡슐화 클래스 방법을 구현합니다.

JS 구현 3 des+base64 암호화 및 복호화알고리즘 단계에 대한 자세한 설명

위 내용은 PHP에서 OpenSSL을 사용한 인증서 생성 및 암호화 및 복호화에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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