개발자 Q&A

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

2025.05.01 08:33

MongoDBDriverClientEncryption::encrypt 메서드 사용 방법에 대한 질문

목록
  • 알고리즘광 12시간 전 2025.05.01 08:33 새글
  • 5
    1
저는 MongoDBDriverClientEncryption::encrypt 메서드를 사용하여 데이터 암호화를 시도하였으나, 에러가 발생하여 도움을 요청합니다.

encrypt 메서드는 키 아이디와 키 materially로 암호화를 수행하는 것으로 알고 있습니다. 하지만, 키 아이디와 키 material을 구분할 때 어떤 매커니즘을 사용해야 하는지 알 수 없습니다.

다음과 같은 코드를 작성하였습니다.

php

use MongoDBDriverClientEncryption;

use MongoDBDriverEncryptor;

use MongoDBDriverKeyManagementClient;



$kmClient = new KeyManagementClient("mongodb://localhost:27017");

$kmClient->findKeyManagementServerAddress();



$keyMateria = $kmClient->createDataKey("myKey", 262144);



$encryptor = new Encryptor($kmClient, $keyMateria);

$encryptedData = $encryptor->encrypt("암호화할 데이터");



위 코드에서 $kmClient->findKeyManagementServerAddress(); 메서드는 키 아이디를 찾는 것으로 알고 있습니다.

하지만, 위 코드에서 $kmClient->findKeyManagementServerAddress(); 메서드와 $keyMateria = $kmClient->createDataKey("myKey", 262144); 메서드는 동일한 키 아이디를 찾는 것인지, 다른 키 아이디를 찾는 것인지 구분이 되지 않습니다.

이러한 문제로 인해 암호화가 제대로 수행되지 않고 에러가 발생하고 있습니다.

다음과 같은 질문을 하게 됩니다.

- $kmClient->findKeyManagementServerAddress(); 메서드는 키 아이디를 찾는 것인지, 다른 용도로 사용되는 것인지?
- $keyMateria = $kmClient->createDataKey("myKey", 262144); 메서드는 키 아이디를 찾는 것인지, 키 material을 찾는 것인지?

위 두 가지 질문에 대한 답변을 통해 문제가 해결될 수 있습니다.

위와 같은 질문에 대한 답변을 통해 문제가 해결될 수 있습니다.

    댓글목록

    profile_image
    나우호스팅  12시간 전



    $kmClient->findKeyManagementServerAddress(); 메서드는 키 관리 서버 주소를 찾는 메서드입니다. 키 아이디를 찾는 것이 아닙니다.

    $kmClient->createDataKey("myKey", 262144); 메서드는 지정된 키 이름("myKey")과 키 크기(262144)로 데이터 키를 생성하는 메서드입니다. 이 메서드는 키 material을 찾는 것이 아니라, 새로운 키 material을 생성하는 메서드입니다.

    따라서, 위 코드에서 $kmClient->findKeyManagementServerAddress(); 메서드는 키 아이디를 찾는 것이 아니라, 키 관리 서버 주소를 찾는 메서드입니다. 그리고 $keyMateria = $kmClient->createDataKey("myKey", 262144); 메서드는 새로운 키 material을 생성하는 메서드입니다.

    이러한 문제를 해결하기 위해서는, $kmClient->findKeyManagementServerAddress(); 메서드를 제거하고, $keyMateria = $kmClient->createDataKey("myKey", 262144); 메서드를 사용하여 새로운 키 material을 생성하는 코드를 작성해야 합니다.

    예를 들어, 다음과 같이 코드를 작성할 수 있습니다.

    #hostingforum.kr
    php
    
    use MongoDBDriverClientEncryption;
    
    use MongoDBDriverEncryptor;
    
    use MongoDBDriverKeyManagementClient;
    
    
    
    $kmClient = new KeyManagementClient("mongodb://localhost:27017");
    
    $keyMateria = $kmClient->createDataKey("myKey", 262144);
    
    
    
    $encryptor = new Encryptor($kmClient, $keyMateria);
    
    $encryptedData = $encryptor->encrypt("암호화할 데이터");
    
    


    이러한 코드를 작성하면, 새로운 키 material을 생성하고 암호화를 수행할 수 있습니다.

    2025-05-01 08:34

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

검색

게시물 검색