2017-10-20 1 views
0

대용량 파일에 대해 몇 가지 기본 작업을 수행하는 암호 해독시 gpg 암호 해독에 문제가 있습니다. 암호 해독 후 정상적인 해독 된 파일은 60G &이며 450G로 증가합니다.gpg 암호 해독 블록 크기 제한

암호 해독 후 rowcount (wc -l)는 HDFS 계층에서만 수행됩니다. 아래는 코드입니다

rowCount=`hdfs dfs -cat ${hdfsDir}/{fileName} | decrypt | wc -l` 

"decrypt"는 gpg --decrypt ... 명령으로 대체해야합니다. 나는 그것을 단지 그것을 피하기 위해 여기에 쓰지 않았다. 2 ~ 3Gig와 같은 작은 크기의 파일의 경우 코드가 올바르게 작동합니다. 그러나 위에 언급 한 크기와 같은 큰 파일의 경우 암호 해독시 오류가 발생합니다.

gpg: block_filter 0x7f2cf62547c0: read error (size=14560,a->size=14560) 
gpg: block_filter 0x7f2cf624c990: read error (size=14900,a->size=14900) 
gpg: mdc_packet with invalid encoding 
gpg: decryption failed: Invalid packet 
gpg: block_filter: pending bytes! 
gpg: block_filter: pending bytes! 

어떤 일이 벌어지고 있는지 알 수 있습니다.

+0

오해가 있습니다. 암호화/해독이 데이터 크기를 12 바이트 이상으로 변경하지는 않습니다. 압축하면 파일 크기가 크게 바뀔 수 있습니다. 정확히 무슨 일이 일어나고 있는지, 그 질문은 막연합니다. 작은 크기의 파일로 작업하고 각 단계에서 데이터를 검사 할 것을 제안하십시오. [mcve], – zaph

+0

을 입력하십시오. gpg 암호화/암호 해독 이외의 다른 압축 알고리즘이 있다고 생각하지 않습니다. 내가 암호를 넣으면 아마도 더 명확 것 /지고 복호화 여기 명령 : 암호화 : 'GPG --recipient [email protected] 암호 해독' --encrypt : '고양이 FILENAME.gpg | gpg --batch --passphrase-file passPhraseFile --yes --recipient [email protected] --decrypt' 압축은 없습니다. 조금도. 희망은 이것이 시작을위한 최소한의 것입니다. – knowone

+0

OK, gpg도 압축을 제공합니까? 당신이 그것을 사용하는 경우 당신은 알고 있어야합니다. – zaph

답변

0

"블록 크기 제한"같은 것이 없습니다. 데이터 암호화는 블록 크기 청크 (AES의 경우 16 바이트)에서 바이트를 암호화합니다. 마지막 블록을 복호화 할 때 제거되는 전체 블록에 채우기 위해 최대 한 블록의 데이터가 추가 될 수 있습니다.

기본값은 gpg가 압축 한 다음 암호화합니다. 압축/압축 해제로 인해 크기가 증가합니다.

참고 : googled : "gpg compression"및 가장 인기있는 질문은 "GNU GPG는 기본적으로 압축합니까?" 첫 번째 대답은 "예"이고 "기본값은 '우편 번호'입니다.

관련 문제