라이브러리

[PHP] openssl_public_decrypt - 공개 키로 데이터 복호화




openssl_public_decrypt 함수는 PHP에서 공개키 암호화 방식인 RSA를 사용하여 암호화된 데이터를 복호화하는 함수입니다. 이 함수는 공개키를 사용하여 암호화된 데이터를 복호화합니다.

사용법


#hostingforum.kr
php

openssl_public_decrypt($encrypted_data, $decrypted_data, $public_key, $padding, $cipher, $iv);



- `$encrypted_data`: 암호화된 데이터
- `$decrypted_data`: 복호화된 데이터
- `$public_key`: 공개키
- `$padding`: 패딩 방식 (OPENSSL_PKCS1_PADDING, OPENSSL_PKCS7_PADDING, OPENSSL_NO_PADDING)
- `$cipher`: 암호화 알고리즘 (RSA, RSA_PKCS1_PADDING, RSA_PKCS1_OAEP_PADDING)
- `$iv`: 초기화 벡터 (NULL)

예제


# 1. 공개키 암호화 및 복호화


#hostingforum.kr
php

// 공개키 생성

$private_key = openssl_pkey_new();

openssl_pkey_export($private_key, $private_key_string);

$public_key = openssl_pkey_get_details($private_key);

$public_key = $public_key['key'];



// 암호화

$encrypted_data = "Hello, World!";

openssl_public_encrypt($encrypted_data, $encrypted_data, $public_key, OPENSSL_PKCS1_PADDING);



// 복호화

openssl_public_decrypt($encrypted_data, $decrypted_data, $public_key, OPENSSL_PKCS1_PADDING);



echo "복호화된 데이터: $decrypted_data";



# 2. RSA 암호화 및 복호화


#hostingforum.kr
php

// 공개키 생성

$private_key = openssl_pkey_new();

openssl_pkey_export($private_key, $private_key_string);

$public_key = openssl_pkey_get_details($private_key);

$public_key = $public_key['key'];



// 암호화

$encrypted_data = "Hello, World!";

openssl_public_encrypt($encrypted_data, $encrypted_data, $public_key, RSA_PKCS1_PADDING);



// 복호화

openssl_private_decrypt($encrypted_data, $decrypted_data, $private_key, RSA_PKCS1_PADDING);



echo "복호화된 데이터: $decrypted_data";



# 3. OAEP 암호화 및 복호화


#hostingforum.kr
php

// 공개키 생성

$private_key = openssl_pkey_new();

openssl_pkey_export($private_key, $private_key_string);

$public_key = openssl_pkey_get_details($private_key);

$public_key = $public_key['key'];



// 암호화

$encrypted_data = "Hello, World!";

openssl_public_encrypt($encrypted_data, $encrypted_data, $public_key, RSA_PKCS1_OAEP_PADDING);



// 복호화

openssl_private_decrypt($encrypted_data, $decrypted_data, $private_key, RSA_PKCS1_OAEP_PADDING);



echo "복호화된 데이터: $decrypted_data";



참고


- 공개키 암호화 방식은 RSA, RSA_PKCS1_PADDING, RSA_PKCS1_OAEP_PADDING이 있습니다.
- 패딩 방식은 OPENSSL_PKCS1_PADDING, OPENSSL_PKCS7_PADDING, OPENSSL_NO_PADDING이 있습니다.
- 초기화 벡터는 NULL로 설정할 수 있습니다.
- 암호화 알고리즘은 RSA, RSA_PKCS1_PADDING, RSA_PKCS1_OAEP_PADDING이 있습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

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

검색

게시물 검색