라이브러리

[PHP] openssl_cms_encrypt - CMS 메시지 암호화




PHP에서 openssl_cms_encrypt 사용하기

`openssl_cms_encrypt`는 PHP의 OpenSSL 확장에서 제공하는 함수로, CMS (Cryptographic Message Syntax)로 암호화된 메시지를 생성하는 데 사용됩니다. CMS는 암호화된 메시지를 전달할 때 사용하는 표준 포맷입니다.

기본 사용법

`openssl_cms_encrypt` 함수는 다음과 같은 형식으로 사용됩니다.

#hostingforum.kr
php

openssl_cms_encrypt($data, $cert, $key, $cert_info, $options, $passphrase);



* `$data`: 암호화할 데이터
* `$cert`: 사용할 인증서
* `$key`: 사용할 개인 키
* `$cert_info`: 인증서 정보 (예: `openssl_x509_read`)
* `$options`: 옵션 (예: `CMS_TEXT | CMS_BINARY`)
* `$passphrase`: 암호화에 사용할 암호

예제

다음 예제에서는 `openssl_cms_encrypt` 함수를 사용하여 CMS로 암호화된 메시지를 생성하는 방법을 보여줍니다.

#hostingforum.kr
php

<?php



// 인증서와 개인 키를 생성합니다.

$cert = openssl_csr_new('CN=example.com', 'private_key.pem');

$cert_info = openssl_x509_read('example.com.crt');



// 암호화할 데이터를 생성합니다.

$data = 'Hello, World!';



// CMS로 암호화된 메시지를 생성합니다.

$encrypted_data = openssl_cms_encrypt($data, $cert_info, 'private_key.pem', $cert_info, CMS_TEXT);



// 암호화된 메시지를 출력합니다.

echo $encrypted_data;



?>



옵션

`openssl_cms_encrypt` 함수에는 여러 옵션이 있습니다.

* `CMS_TEXT`: 텍스트 데이터를 암호화합니다.
* `CMS_BINARY`: 이진 데이터를 암호화합니다.
* `CMS_NO_INDEF`: 무한 길이의 데이터를 암호화하지 않습니다.
* `CMS_NO_EXTERNAL`: 외부 데이터를 암호화하지 않습니다.

주의

`openssl_cms_encrypt` 함수는 PHP 7.2 이상에서만 사용할 수 있습니다. 또한, 인증서와 개인 키가 올바르게 생성되고 사용되어야 합니다.

참고

* OpenSSL 확장의 공식 문서:
* PHP의 OpenSSL 확장 문서:
* CMS (Cryptographic Message Syntax) 표준 문서:
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 352 페이지

검색

게시물 검색