GnuPG加密文件的大小是否取决于文件的内容?
Does the size of the GnuPG encrypted file depend on the content of the file?
当我加密两个相同大小的不同字符串时:
echo 'abc' | gpg --yes --encrypt -r loic@dachary.org > /tmp/1
echo 'def' | gpg --yes --encrypt -r loic@dachary.org > /tmp/2
我得到两个相同大小的加密文件:
$ ls -l /tmp/[12]
-rw-r--r-- 1 loic loic 592 Feb 26 19:58 /tmp/1
-rw-r--r-- 1 loic loic 592 Feb 26 19:58 /tmp/2
是否可以保证永远如此?或者加密文件的大小是否可能根据某些随机因素而变化?
一般情况下加密不会增加数据大小,相同大小的不同数据加密会产生相同大小的结果。
注意:大多数对称加密算法(例如 AES)都是基于块的,并且根据模式可能需要填充最后一个块,因此加密数据最多可以比未加密数据大一个块大小。
是的,GnuPG 加密文件的大小取决于文件的内容。
默认情况下,GPG 将压缩加密消息的内容,其中除了有效负载之外还包含可变部分。因此,即使有效载荷没有改变,加密消息的大小也可能会有所不同。
更重要的是,两条大小相同但内容不同的消息不太可能以相同的方式压缩,因此加密消息的大小将取决于有效载荷的内容。
然而,可以使用 --compress-algo=none
标志禁用压缩,在这种情况下,无论有效负载的内容如何,加密消息的大小都是相同的。
当我加密两个相同大小的不同字符串时:
echo 'abc' | gpg --yes --encrypt -r loic@dachary.org > /tmp/1
echo 'def' | gpg --yes --encrypt -r loic@dachary.org > /tmp/2
我得到两个相同大小的加密文件:
$ ls -l /tmp/[12]
-rw-r--r-- 1 loic loic 592 Feb 26 19:58 /tmp/1
-rw-r--r-- 1 loic loic 592 Feb 26 19:58 /tmp/2
是否可以保证永远如此?或者加密文件的大小是否可能根据某些随机因素而变化?
一般情况下加密不会增加数据大小,相同大小的不同数据加密会产生相同大小的结果。
注意:大多数对称加密算法(例如 AES)都是基于块的,并且根据模式可能需要填充最后一个块,因此加密数据最多可以比未加密数据大一个块大小。
是的,GnuPG 加密文件的大小取决于文件的内容。
默认情况下,GPG 将压缩加密消息的内容,其中除了有效负载之外还包含可变部分。因此,即使有效载荷没有改变,加密消息的大小也可能会有所不同。
更重要的是,两条大小相同但内容不同的消息不太可能以相同的方式压缩,因此加密消息的大小将取决于有效载荷的内容。
然而,可以使用 --compress-algo=none
标志禁用压缩,在这种情况下,无论有效负载的内容如何,加密消息的大小都是相同的。