【发布时间】:2017-10-20 10:26:21
【问题描述】:
我在对大文件进行解密和执行一些基本操作时遇到了 gpg 解密问题。正常解密文件为60G,解密后膨胀到450G。
解密,然后行计数(wc -l)仅在 HDFS 层内完成;下面是代码sn-p
rowCount=`hdfs dfs -cat ${hdfsDir}/{fileName} | decrypt | wc -l`
上面的“解密”应该用 gpg --decrypt ... 命令代替。我没有写在这里只是为了避免它。 对于像 2~3Gigs 这样的小文件,代码可以正常工作。但是对于像我上面提到的大小这样的大文件,解密会抛出以下错误:
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!
有人知道发生了什么吗?
【问题讨论】:
-
有一个误解,加密/解密不会改变十几个字节的数据大小。压缩可以极大地改变文件大小。所以,到底发生了什么,这个问题是模糊的。建议使用小文件并在每一步检查数据。提供minimal reproducible example,
-
好的。我认为除了 gpg 加密/解密之外,我没有运行任何其他压缩算法。如果我将加密/解密命令放在这里可能会更清楚: 加密:
gpg --recipient myMail@mail.com --encrypt <FILENAME>解密:cat FILENAME.gpg | gpg --batch --passphrase-file passPhraseFile --yes --recipient myMail@mail.com --decrypt这里没有压缩;一点也不。希望这是一个最小的开始。 -
好的,那么gpg也提供压缩吗?如果您使用它,您应该知道。
-
我知道压缩是基于我看到的输出,但是我不知道 gpg 正在做什么类型的压缩。
标签: unix hadoop encryption hdfs gnupg