PHP에서 excel 파일에 암호걸기는 가능할까?
최근에 업무 때문에 excel 파일에 암호를 걸어서 데이터를 보호하는 작업을 진행했는데.. PHP 에서는 이게 현재는 불가능하다는 결론에 도달했다. 유료 프로그램을 이용하는 방안도 있긴 하겠지만 굳이 그럴 필요성은 없어서.. PhpSpreadsheet 문서에 Protection 관련 내용이 있어서 가능하지 않을까 생각했지만.. 실제로 내가 원한 것은 Encryption 이기 때문에 사용이 불가능 했다.
encryption 이 가능한 방법이 없을까 검색을 하다보니 nodejs 모듈 중 secure-spreadsheet 모듈이 encryption 이 가능했다. 실제로 모듈을 설치해서 테스트까지 했을 때 csv, xlsx 파일 모두 정상적으로 처리가 됐다. 변환 속도 그리 느리지 않았고 다 좋았는데.. excel 파일의 용량이 데이터에 따라 다르겠지만 클 수도 있다는 생각에 150mb 정도의 파일로 테스트 해보니 바로 오류.. 30mb 정도는 무리가 없었는데.. 물론 이거는 PC 에서 했기 때문일 수도 있다. 실제 서버에서는 어떻게 될지 모르는 일..
그러나 작업을 진행하려면 공수가 제법 들 것 같아서.. excel 파일 생성 후 zip 으로 압축하고 zip 파일에 암호를 거는 방법으로 처리하기로 했다. 나중에 다른 방법으로 바꿔야 할 수도 있지만.. 현재는 가장 간단하면서 빠른 방법이다.
zip -jrq -P <password> <zip_file_path> <excel_file_path>
일단 이렇게 하기는 했는데.. 과연 이걸로 끝일까?