openssl 명령을 사용하여 대용량 암호화 파일을 만드는 방법

openssl 명령을 사용하여 대용량 암호화 파일을 만드는 방법

AIX에서 암호화된 파일을 생성하는 동안 다음 오류가 발생합니다.

$ openssl enc -aes-256-cbc -salt -in test.img -out test.img.enc 

test.img: Value too large to be stored in data type
14221428:error:0200107F:system library:fopen:Value too large to be stored in:bss_file.c:356:fopen('test.img','r')
14221428:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:358:

test.img 파일 크기는 35GB입니다.

Linux의 100GB 파일에도 동일한 명령이 작동합니다.

답변1

오류에 따르면 귀하의 사본은 openssl대용량 파일 지원으로 컴파일되거나 링크되지 않았습니다. fopen아마도 파일을 연 후 파일 크기를 검색하려고 시도하다가 실패하기 때문에 실패할 것입니다.

음, 비결은 openssl파이프에서 데이터를 읽고 파이프에 쓰는 것입니다. 파이프에는 치수가 없으므로 fopen이를 알고 있으면 괜찮을 것입니다. 파이프의 다른 쪽 끝에 있는 것들은 복잡한 작업을 수행할 필요가 없으며 openssl실제 파일 간의 통과 필터 만 있으면 됩니다 . 이것이 cat바로 일의 전부입니다. cat는 이제 대용량 파일에 직접 노출되는 기능이 되어 대용량 파일 지원이 필요하지만 운영 체제에서 제공하는 기본 유틸리티로는 지원한다고 가정합니다.

cat test.img | openssl enc -aes-256-cbc -salt | cat >test.img.enc

관련 정보