대용량 파일을 암호화해야 하는데 하드 드라이브에 파일과 암호화된 버전을 모두 저장할 저장 공간이 부족합니다.
사용된 공간이 거의 동일하게 유지되도록 파일을 암호화하면서 점차적으로 파일을 삭제하는 것이 가능할 것 같습니다.
다음을 사용하여 내 파일을 암호화하면
openssl aes-256-cbc -in myfile -out myfile.aes-256-cbc
원본 파일과 암호화된 파일의 단계별 삭제를 어떻게 권장합니까 myfile
?
답변1
Linux에서는 다음을 사용할 수 있습니다.fallocate
파일에 "구멍을 뚫습니다". 즉, 일부 데이터 블록을 버립니다. ext4, XFS 또는 btrfs 파일 시스템(또는 tmpfs)이 필요합니다.
$ perl -e 'print "a" x 16384' > foo
$ ls -sl foo
16 -rw-r--r-- 1 foo foo 16384 Oct 18 13:12 foo
$ fallocate -p -o0 -l 8192 foo
$ ls -sl foo
8 -rw-r--r-- 1 foo foo 16384 Oct 18 13:12 foo
다른 시스템에도 유사한 기능이 있을 수도 있고 없을 수도 있지만 이와 관련된 유일한 이식 가능한 시스템 호출은 다음과 같습니다.posix_fallocate
그리고truncate
첫 번째는 파일을 위해 새 공간을 예약하는 것만 허용하고 두 번째는 파일을 자르는 것만 허용하므로 이는 실제로 도움이 되지 않습니다.끝에서.
openssl
어떤 경우든, 예를 들어 입력 파일을 파이프로 연결하고 파일에서 읽은 부분(다른 부분은 제외)을 삭제하는 프로그램을 설치해야 합니다 . 어떤 프로그래밍 언어로든 구현하는 것은 어렵지 않지만, 충돌이 발생하면 사용할 수 없는 부분이 남을 수 있기 때문에 그다지 안전하지도 않습니다.
파티션을 암호화할 수 있는 전체 디스크 암호화 유틸리티가 있는지 모르겠습니다.
또한 관련 내용은 다음과 같습니다.대용량 파일을 복사하지 않고 서로 첨부