라이브러리
[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) 표준 문서:
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.