개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.08.16 10:03

openssl_public_encrypt 사용에 어려움을 겪고 있습니다.

목록
  • AWS매니아 1시간 전 2025.08.16 10:03 새글
  • 1
    1
openssl_public_encrypt 함수를 사용하여 공개키 암호화를 하려고 하는데,
public_key 에 해당하는 키를 어떻게 생성해야 하는지 모르겠습니다.
openssl_public_encrypt 함수의 인자 중 key 인자는 어떻게 사용해야 하는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  1시간 전



    openssl_public_encrypt 함수를 사용하려면 먼저 공개키를 생성해야 합니다. 공개키를 생성하는 방법은 두 가지가 있습니다.

    1. RSA 공개키를 생성하는 방법입니다. RSA 공개키를 생성하는 방법은 OpenSSL의 rsa_new 함수를 사용하여 공개키를 생성할 수 있습니다.

    #hostingforum.kr
    c
    
    RSA *rsa = RSA_new();
    
    BIGNUM *e = BN_new();
    
    BN_set_word(e, 65537);
    
    RSA_generate_key_ex(rsa, 2048, e, NULL);
    
    


    2. ECDSA 공개키를 생성하는 방법입니다. ECDSA 공개키를 생성하는 방법은 OpenSSL의 EC_KEY_new 함수를 사용하여 공개키를 생성할 수 있습니다.

    #hostingforum.kr
    c
    
    EC_KEY *ec_key = EC_KEY_new_by_curve_name(NID_secp521r1);
    
    


    public_key 인자는 RSA 또는 EC_KEY 객체를 사용하여 생성한 공개키를 사용해야 합니다.

    #hostingforum.kr
    c
    
    RSA *rsa = RSA_new();
    
    // RSA 공개키 생성
    
    // ...
    
    
    
    EC_KEY *ec_key = EC_KEY_new_by_curve_name(NID_secp521r1);
    
    // ECDSA 공개키 생성
    
    // ...
    
    
    
    // RSA 공개키 사용
    
    openssl_public_encrypt(data, encrypted_data, rsa, padding);
    
    
    
    // ECDSA 공개키 사용
    
    openssl_public_encrypt(data, encrypted_data, ec_key, padding);
    
    


    key 인자는 공개키 객체를 사용하여 암호화를 수행해야 합니다.

    #hostingforum.kr
    c
    
    openssl_public_encrypt(data, encrypted_data, public_key, padding);
    
    


    padding 인자는 암호화에 사용할 패딩을 지정해야 합니다. OpenSSL에서는 PKCS1_PADDING, RSA_PKCS1_PADDING, RSA_PKCS1_OAEP_PADDING, RSA_PKCS1_OAEP_MGF1_PADDING, RSA_PKCS1_OAEP_SHA1_PADDING, RSA_PKCS1_OAEP_SHA256_PADDING, RSA_PKCS1_OAEP_SHA384_PADDING, RSA_PKCS1_OAEP_SHA512_PADDING, RSA_PKCS1_PSS_PADDING, RSA_PKCS1_PSS_MGF1_PADDING, RSA_PKCS1_PSS_MGF1_SHA1_PADDING, RSA_PKCS1_PSS_MGF1_SHA256_PADDING, RSA_PKCS1_PSS_MGF1_SHA384_PADDING, RSA_PKCS1_PSS_MGF1_SHA512_PADDING, RSA_PKCS1_PSS_SHA1_PADDING, RSA_PKCS1_PSS_SHA256_PADDING, RSA_PKCS1_PSS_SHA384_PADDING, RSA_PKCS1_PSS_SHA512_PADDING, RSA_NO_PADDING, RSA_PKCS1_ENCRYPT_PADDING, RSA_PKCS1_OAEP_PADDING, RSA_PKCS1_OAEP_MGF1_PADDING, RSA_PKCS1_OAEP_SHA1_PADDING, RSA_PKCS1_OAEP_SHA256_PADDING, RSA_PKCS1_OAEP_SHA384_PADDING, RSA_PKCS1_OAEP_SHA512_PADDING, RSA_PKCS1_PSS_PADDING, RSA_PKCS1_PSS_MGF1_PADDING, RSA_PKCS1_PSS_MGF1_SHA1_PADDING, RSA_PKCS1_PSS_MGF1_SHA256_PADDING, RSA_PKCS1_PSS_MGF1_SHA384_PADDING, RSA_PKCS1_PSS_MGF1_SHA512_PADDING, RSA_PKCS1_PSS_SHA1_PADDING, RSA_PKCS1_PSS_SHA256_PADDING, RSA_PKCS1_PSS_SHA384_PADDING, RSA_PKCS1_PSS_SHA512_PADDING, RSA_NO_PADDING, RSA_PKCS1_ENCRYPT_PADDING, RSA_PKCS1_OAEP_PADDING, RSA_PKCS1_OAEP_MGF1_PADDING, RSA_PKCS1_OAEP_SHA1_PADDING, RSA_PKCS1_OAEP_SHA256_PADDING, RSA_PKCS1_OAEP_SHA384_PADDING, RSA_PKCS1_OAEP_SHA512_PADDING, RSA_PKCS1_PSS_PADDING, RSA_PKCS1_PSS_MGF1_PADDING, RSA_PKCS1_PSS_MGF1_SHA1_PADDING, RSA_PKCS1_PSS_MGF1_SHA256_PADDING, RSA_PKCS1_PSS_MGF1_SHA384_PADDING, RSA_PKCS1_PSS_MGF1_SHA512_PADDING, RSA_PKCS1_PSS_SHA1_PADDING, RSA_PKCS1_PSS_SHA256_PADDING, RSA_PKCS1_PSS_SHA384_PADDING, RSA_PKCS1_PSS_SHA512_PADDING, RSA_NO_PADDING, RSA_PKCS1_ENCRYPT_PADDING, RSA_PKCS1_OAEP_PADDING, RSA_PKCS1_OAEP_MGF1_PADDING, RSA_PKCS1_OAEP_SHA1_PADDING, RSA_PKCS1_OAEP_SHA256_PADDING, RSA_PKCS1_OAEP_SHA384_PADDING, RSA_PKCS1_OAEP_SHA512_PADDING, RSA_PKCS1_PSS_PADDING, RSA_PKCS1_PSS_MGF1_PADDING, RSA_PKCS1_PSS_MGF1_SHA1_PADDING, RSA_PKCS1_PSS_MGF1_SHA256_PADDING, RSA_PKCS1_PSS_MGF1_SHA384_PADDING, RSA_PKCS1_PSS_MGF1_SHA512_PADDING, RSA_PKCS1_PSS_SHA1_PADDING, RSA_PKCS1_PSS_SHA256_PADDING, RSA_PKCS1_PSS_SHA384_PADDING, RSA_PKCS1_PSS_SHA512_PADDING, RSA_NO_PADDING, RSA_PKCS1_ENCRYPT_PADDING, RSA_PKCS1_OAEP_PADDING, RSA_PKCS1_OAEP_MGF1_PADDING, RSA_PKCS1_OAEP_SHA1_PADDING, RSA_PKCS1_OAEP_SHA256_PADDING, RSA_PKCS1_OAEP_SHA384_PADDING, RSA_PKCS1_OAEP_SHA512_PADDING, RSA_PKCS1_PSS_PADDING, RSA_PKCS1_PSS_MGF1_PADDING, RSA_PKCS1_PSS_MGF1_SHA1_PADDING, RSA_PKCS1_PSS_MGF1_SHA256_PADDING, RSA_PKCS1_PSS_MGF1_SHA384_PADDING, RSA_PKCS1_PSS_MGF1_SHA512_PADDING, RSA_PKCS1_PSS_SHA1_PADDING, RSA_PKCS1_PSS_SHA256_PADDING, RSA_PKCS1_PSS_SHA384_PADDING, RSA_PKCS1_PSS_SHA512_PADDING, RSA_NO_PADDING, RSA_PKCS1_ENCRYPT_PADDING, RSA_PKCS1_OAEP_PADDING, RSA_PKCS1_OAEP_MGF1_PADDING, RSA_PKCS1_OAEP_SHA1_PADDING, RSA_PKCS1_OAEP_SHA256_PADDING, RSA_PKCS1_OAEP_SHA384_PADDING, RSA_PKCS1_OAEP_SHA512_PADDING, RSA_PKCS1_PSS_PADDING, RSA_PKCS1_PSS_MGF1_PADDING, RSA_PKCS1_PSS_MGF1_SHA1_PADDING, RSA_PKCS1_PSS_MGF1_SHA256_PADDING, RSA_PKCS1_PSS_MGF1_SHA384_PADDING, RSA_PKCS1_PSS_MGF1_SHA512_PADDING, RSA_PKCS1_PSS_SHA1_PADDING, RSA_PKCS1_PSS_SHA256_PADDING, RSA_PKCS1_PSS_SHA384_PADDING, RSA_PKCS1_PSS_SHA512_PADDING, RSA_NO_PADDING, RSA_PKCS1_ENCRYPT_PADDING, RSA_PKCS1_OAEP_PADDING, RSA_PKCS1_OAEP_MGF1_PADDING, RSA_PKCS1_OAEP_SHA1_PADDING, RSA_PKCS1_OAEP_SHA256_PADDING, RSA_PKCS1_OAEP_SHA384_PADDING, RSA_PKCS1_OAEP_SHA512_PADDING, RSA_PKCS1_PSS_PADDING, RSA_PKCS1_PSS_MGF1_PADDING, RSA_PKCS1_PSS_MGF1_SHA1_PADDING, RSA_PKCS1_PSS_MGF1_SHA256_PADDING, RSA_PKCS1_PSS_MGF1_SHA384_PADDING, RSA_PKCS1_PSS_MGF1_SHA512_PADDING, RSA_PKCS1_PSS_SHA1_PADDING, RSA_PKCS1_PSS_SHA256_PADDING, RSA_PKCS1_PSS_SHA384_PADDING, RSA_PKCS1_PSS_SHA512_PADDING, RSA_NO_PADDING, RSA_PKCS1_ENCRYPT_PADDING, RSA_PKCS1_OAEP_PADDING, RSA_PKCS1_OAEP_MGF1_PADDING, RSA_PKCS1_OAEP_SHA1_PADDING, RSA_PKCS1_OAEP_SHA256_PADDING, RSA_PKCS1_OAEP_SHA384_PADDING, RSA_PKCS1_OAEP_SHA512_PADDING, RSA_PKCS1_PSS_PADDING, RSA_PKCS1_PSS_MGF1_PADDING, RSA_PKCS1_PSS_MGF1_SHA1_PADDING, RSA_PKCS1_PSS_MGF1_SHA256_PADDING, RSA_PKCS1_PSS_MGF1_SHA384_PADDING, RSA_PKCS1_PSS_MGF1_SHA512_PADDING, RSA_PKCS1_PSS_SHA1_PADDING, RSA_PKCS1_PSS_SHA256_PADDING, RSA_PKCS1_PSS_SHA384_PADDING, RSA_PKCS1_PSS_SHA512_PADDING, RSA_NO_PADDING, RSA_PKCS1_ENCRYPT_PADDING, RSA_PKCS1_OAEP_PADDING, RSA_PKCS1_OAEP_MGF1_PADDING, RSA_PKCS1_OAEP_SHA1_PADDING, RSA_PKCS1_OAEP_SHA256_PADDING, RSA_PKCS1_OAEP_SHA384_PADDING, RSA_PKCS1_OAEP_SHA512_PADDING, RSA_PKCS1_PSS_PADDING, RSA_PKCS1_PSS_MGF1_PADDING, RSA_PKCS1_PSS_MGF1_SHA1_PADDING, RSA_PKCS1_PSS_MGF1_SHA256_PADDING, RSA_PKCS1_PSS_MGF1_SHA384_PADDING, RSA_PKCS1_PSS_MGF1_SHA512_PADDING, RSA_PKCS1_PSS_SHA1_PADDING, RSA_PKCS1

    2025-08-16 10:04

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 44,514건 / 1 페이지

검색

게시물 검색