VintaSoft Imaging .NET SDK는 모든 글꼴 유형에 대한 텍스트 인코딩을 난독화하는 기능을 지원합니다.
목적은 무엇입니까? 예를 들어, 문서를 공개적으로 게시하거나 제3자에게 제공할 때 PDF 뷰어에서 복사/붙여넣기를 통해 문서의 텍스트가 쉽게 추출되는 것을 원하지 않는 경우입니다.
해결책 1: PDF 문서 보안 설정의 플래그를 사용하여 텍스트 추출을 금지합니다. 그러나 이 설정이 제대로 적용되는지는 사용자가 문서를 보는 데 사용하는 애플리케이션에 따라 달라집니다. PDF 뷰어가 PDF 문서 보안 설정을 무시하는 경우 텍스트를 쉽게 추출할 수 있습니다.
해결책 2: 텍스트 인코딩 정보를 완전히 제거하고, 글꼴의 글리프를 섞고, 페이지의 심볼 코드를 섞습니다. 이는
VintaSoft PDF .NET Plug-in에서 제공하는 텍스트 인코딩 난독화 기능을 사용하여 수행할 수 있습니다. 난독화 메커니즘은 텍스트 인코딩에 대한 정보를 완전히 제거하고, 글꼴과 페이지의 기호 글리프를 혼합하고, 글꼴과 기호 글리프를 중복합니다. 이렇게 난독화된 텍스트는 OCR을 통해서만 추출할 수 있습니다.
VintaSoft PDF Editor 데모 애플리케이션을 사용하여 간단한 PDF 문서(
document-without-text-obfuscation.pdf)의 난독화를 살펴보겠습니다.
이 문서는 두 페이지로 구성되어 있습니다. 네 문장이 세 가지 다른 글꼴을 사용하여 작성되었습니다.
첫 번째 페이지와 두 번째 페이지의 첫 번째 문장은 동일한 글꼴을 사용하여 작성되었습니다.
텍스트 추출 패널과 글꼴 보기 대화 상자에는 모든 기호의 텍스트 인코딩이 올바르게 표시되어 있습니다.
텍스트 인코딩 난독화 대화 상자는 응용 프로그램 메뉴에서 [텍스트] -> [텍스트 인코딩 난독화] -> [설정]을 통해 호출할 수 있습니다.
기본 설정으로 난독화를 수행하고 난독화된 텍스트가 포함된 출력 문서를 살펴보겠습니다.
document-with-default-text-obfuscation.pdf.
문서를 검토한 결과 글꼴이 완전히 변경되었고, 글리프가 무작위로 재배치된 것을 확인할 수 있습니다. 추출된 텍스트는 텍스트 추출 패널에서 볼 수 있습니다.
두 페이지의 첫 번째 문장이 동일한 글꼴로 작성되었으므로 두 페이지의 첫 번째 단어(녹색으로 강조 표시됨)의 기호가 동일합니다.
"간단한 프로그램을 작성해서 텍스트를 추출하고, 수동으로 문자 매핑 테이블을 만들어서 해독해 보겠습니다."라고 생각할 수도 있습니다. 네, 특히 문서에 사용된 글꼴이 몇 개 되지 않는 경우에는 가능합니다. 하지만 바로 이러한 이유로 해독 작업을 거의 불가능하게 만드는 난독화 설정을 구현했습니다.
다시 텍스트 인코딩 난독화 대화 상자를 열고 다음을 수행합니다.
- 글꼴 복제 옵션을 활성화합니다. 각 페이지는 고유한 글꼴 세트를 사용하며, 각 글꼴 세트의 글리프는 무작위로 재배치됩니다.
- 글꼴 글리프 복제 옵션을 활성화합니다. 페이지의 동일한 기호는 글꼴에서 서로 다른 글리프를 사용하며, 글리프 코드는 무작위로 선택됩니다.
이후 PDF 문서의 텍스트 인코딩을 다시 한 번 난독화하고 난독화된 텍스트가 포함된 출력 PDF 문서를 검토해 보겠습니다.
document-with-strong-text-obfuscation.pdf.
이제 문자 "e"에 대해 서로 다른 글리프가 사용되었고 추출된 텍스트에는 이 문자의 기호가 서로 다른 코드로 포함된 것을 확인할 수 있습니다.
첫 번째 줄의 "Text"라는 단어는 이제 서로 다른 글꼴로 작성되었습니다.각 글꼴에는 고유한 임의 위치와 글리프 복제 방식이 사용됩니다. 이제 첫 번째 페이지와 두 번째 페이지에서 추출한 단어는 완전히 다릅니다.