gpg解密块大小限制

时间:2017-10-20 01:29:16

标签: unix hadoop encryption hdfs gnupg

我遇到了gpg解密的问题,我正在解密&对大文件执行一些基本操作。正常的解密文件是60G&解密后,它膨胀到450G。

解密,然后rowcount(wc -l)仅在HDFS层内完成;下面是代码段

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!

任何人都知道发生了什么事?

1 个答案:

答案 0 :(得分:0)

没有“块大小限制”这样的东西。数据加密在块大小块上逐字节加密(AES为16字节)。最多可以添加一个数据块,将最后一个字节填充到一个完整的块,在解密时将其删除。

gpg是默认压缩然后加密。因此,压缩/解压缩导致大小增加解密。

注意:我用谷歌搜索:“gpg压缩”和热门问题是:“GNU GPG默认压缩吗?”第一个答案是:“是”和“默认是'ZIP'”。