Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

doc_compiling_with_script_encryption_key

내보내기 대화 상자에는 프로젝트를 출시할 때 PCK 파일을 256비트 AES 키로 암호화하는 옵션이 제공됩니다. 이렇게 하면 장면, 스크립트 및 기타 리소스가 일반 텍스트로 저장되지 않고 일부 스크립트 어린이가 쉽게 추출할 수 없게 됩니다.

물론 키는 바이너리에 저장되어야 하지만 기호 없이 컴파일되고 최적화된 경우 키를 찾는 데 약간의 노력이 필요할 것입니다.

이것이 작동하려면 동일한 키를 사용하여 소스에서 내보내기 템플릿을 빌드해야 합니다.

경고

사전 컴파일된 공식 내보내기 템플릿을 사용하는 경우에는 작동하지 않습니다**. PCK 암호화를 사용하려면 자체 내보내기 템플릿을 컴파일하는 것이 반드시 **필수**입니다.

단계별

  1. 16진수 형식의 256비트 AES 키를 생성합니다. `이 서비스 <https://asecuritysite.com/encryption/keygen>`_에서 aes-256-cbc 변형을 사용할 수 있습니다.

    또는 OpenSSL 명령줄 도구를 사용하여 직접 생성할 수도 있습니다.

    openssl rand -hex 32 > godot.gdkey
    

    ``godot.gdkey``의 출력은 다음과 유사해야 합니다.

    # NOTE: Do not use the key below! Generate your own key instead.
    aeb1bc56aaf580cc31784e9c41551e9ed976ecba10d315db591e749f3f64890f
    

    출력을 파일로 리디렉션하지 않고도 키를 생성할 수 있지만 이렇게 하면 키가 노출될 위험을 최소화할 수 있습니다.

  2. 다음과 같이 Godot를 컴파일하는 데 사용할 콘솔에서 이 키를 환경 변수로 설정하세요:

    export SCRIPT_AES256_ENCRYPTION_KEY="your_generated_key"
    

    위에 제안된 명령은 터미널 세션 전체에서 변수를 유지하지 않습니다.

  3. Godot 내보내기 템플릿을 컴파일하고 내보내기 사전 설정 옵션에서 사용자 정의 내보내기 템플릿으로 설정하세요. 환경 변수가 올바르게 설정되면 컴파일 시작 시 다음 메시지가 인쇄됩니다.

    *** IMPORTANT: Compiling Godot with custom `SCRIPT_AES256_ENCRYPTION_KEY` set as environment variable.
    *** Make sure to use templates compiled with this key when exporting a project with encryption.
    
  4. 내보내기 사전 설정의 암호화 탭에서 암호화 키를 설정합니다.

    ../../../_images/encryption_key.png
  5. 암호화할 파일/폴더에 대한 필터를 추가합니다. 기본적으로 포함 필터는 비어 있으며 아무것도 암호화되지 않습니다.

  6. 프로젝트를 내보냅니다. 이제 프로젝트가 암호화된 파일로 실행되어야 합니다.

문제 해결

아래와 같이 오류가 발생하면, 여러분의 Godot 빌드에 키가 제대로 포함되지 있지 않은 것입니다. Godot는 내보내는 동안 PCK 파일을 암호화하지만 런타임에는 읽을 수 없습니다.

ERROR: open_and_parse: Condition "String::md5(md5.digest) != String::md5(md5d)" is true. Returning: ERR_FILE_CORRUPT
   At: core/io/file_access_encrypted.cpp:103