라이브러리
[PHP] openssl_cms_sign - 파일 서명
OpenSSL CMS Sign
OpenSSL CMS (Cryptographic Message Syntax) Sign은 메시지에 디지털 서명(전자 서명)을 추가하는 데 사용되는 PHP 함수입니다. 이 함수는 메시지에 서명 알고리즘, 서명 키, 서명 데이터를 포함하는 CMS (Cryptographic Message Syntax) 메시지를 생성합니다.
# OpenSSL CMS Sign 함수
OpenSSL CMS Sign 함수는 다음과 같은 형태로 사용됩니다.
#hostingforum.kr
php
openssl_cms_sign($data, $cert, $key, $cert_info, $sign_algo, $digest_algo, $extra_cert_ids, $extra_certs, $policy, $inhibit_any_signature, $inhibit_policy_mapping, $inhibit_critical, $signing_time, $content_type, $content, $cert_store, $md5_digest, $sha1_digest, $sha256_digest, $sha384_digest, $sha512_digest, $subject_name_hash, $issuer_name_hash, $subject_key_id, $issuer_key_id, $crl_url, $crl_number, $crl_reason, $untrusted_cert_store)
# 함수의 매개변수
- `$data` : 서명할 메시지 데이터입니다.
- `$cert` : 서명할 메시지에 사용할 인증서입니다.
- `$key` : 서명할 메시지에 사용할 개인 키입니다.
- `$cert_info` : 인증서 정보입니다.
- `$sign_algo` : 서명 알고리즘입니다.
- `$digest_algo` : 해시 알고리즘입니다.
- `$extra_cert_ids` : 추가 인증서 ID입니다.
- `$extra_certs` : 추가 인증서입니다.
- `$policy` : 정책입니다.
- `$inhibit_any_signature` : 서명 금지 정책입니다.
- `$inhibit_policy_mapping` : 정책 매핑 금지 정책입니다.
- `$inhibit_critical` : 중요 금지 정책입니다.
- `$signing_time` : 서명 시간입니다.
- `$content_type` : 콘텐츠 유형입니다.
- `$content` : 콘텐츠입니다.
- `$cert_store` : 인증서 저장소입니다.
- `$md5_digest` : MD5 해시입니다.
- `$sha1_digest` : SHA-1 해시입니다.
- `$sha256_digest` : SHA-256 해시입니다.
- `$sha384_digest` : SHA-384 해시입니다.
- `$sha512_digest` : SHA-512 해시입니다.
- `$subject_name_hash` : 주제 이름 해시입니다.
- `$issuer_name_hash` : 발급자 이름 해시입니다.
- `$subject_key_id` : 주제 키 ID입니다.
- `$issuer_key_id` : 발급자 키 ID입니다.
- `$crl_url` : CRL URL입니다.
- `$crl_number` : CRL 번호입니다.
- `$crl_reason` : CRL 이유입니다.
- `$untrusted_cert_store` : 신뢰되지 않는 인증서 저장소입니다.
# 예제
다음 예제는 OpenSSL CMS Sign 함수를 사용하여 메시지에 디지털 서명을 추가하는 방법을 보여줍니다.
#hostingforum.kr
php
<?php
// 인증서와 개인 키를 로드합니다.
$cert = file_get_contents('example.crt');
$key = file_get_contents('example.key');
// 서명할 메시지 데이터를 생성합니다.
$data = 'Hello, World!';
// OpenSSL CMS Sign 함수를 호출하여 메시지에 디지털 서명을 추가합니다.
$signed_data = openssl_cms_sign($data, $cert, $key, null, 'sha256', 'sha256', null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);
// 서명한 메시지를 출력합니다.
echo $signed_data;
?>
이 예제에서는 OpenSSL CMS Sign 함수를 사용하여 메시지에 디지털 서명을 추가합니다. 인증서와 개인 키를 로드하고 서명할 메시지 데이터를 생성한 후 OpenSSL CMS Sign 함수를 호출하여 메시지에 디지털 서명을 추가합니다. 서명한 메시지를 출력합니다.
# 참고
OpenSSL CMS Sign 함수는 메시지에 디지털 서명을 추가하는 데 사용됩니다. 이 함수는 메시지에 서명 알고리즘, 서명 키, 서명 데이터를 포함하는 CMS (Cryptographic Message Syntax) 메시지를 생성합니다. OpenSSL CMS Sign 함수는 PHP 7.2 이상에서 사용할 수 있습니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.