相同的 gpg 命令应用于相同的字符串但得到不同的结果

相同的 gpg 命令应用于相同的字符串但得到不同的结果

我是 GPG 新手,最近学习了一些基本的 GPG 命令。我刚刚发现使用相同的 GPG 命令加密相同的数据总是会产生不同的结果。下面是一个例子。是正常的吗?我快速浏览了一下 GPG 手册页,发现有一个参数--faked-system-time似乎表明 GPG 加密将使用系统时间作为输入。这是真的?

root@EPC:~# echo xxx | gpg -ear [email protected]
-----BEGIN PGP MESSAGE-----

hQIMAzha1PwyPp1PAQ//byuSt9hlwYAZAjXxC/eychTXbEvA8HnuCDaclczOVd3r
FSrKfMPAcyWE+XLWZfQrKJ0gKQIF2lJNFHCXieDYi2AA0pOUKzatUvlccJV7BKk2
mY2LmH6R7rNh5Us+Es/xut03TWmjVFzXtsHRQBazVpn19PyB7ybusWTv05POmLqD
nZe2l0uhjfQxtBG/a5leNF8cg5vhun7i0tHL/6y4yYCjEBO8zCl4lmwTaLwfVAPM
VoLCtX+3UBmolRsA3zod/Fbo9bFAH7lT1w1nTd0Oq6jnXNQZib81pWtfgCZ1WI9S
XfEptr8TtOZenEgY8azXIzORhiV1rXJkmqS1ofIhAn4FhvEljQN3h0buml3pfVyn
Q9b/toEBLNS/Vin3+NQP/wzp3iB0ykRrTSVT0BZsfE52do5tqtbSPFPkZoF1ncof
u8kRH5ccDXAT0tUqZnyfkvasadtr05yjV+W0A6rwjQ4TE7AdTpICiKrcrLLDd47s
42a4bbm0BVd63uHG7fwBXZ7lsdG+3Mjs+WwEDURVAGUc0qv3dGQf3m7+P3vivTsv
dT2I65c0tlyOMjOqSvUzBia153gRz6aNuf0YlvD1l6ULiR7pqkG9Zu+EWXdDWsXE
xnhZXxX9Y9kxz3GLtaWmTOFJeWlfzJ07vtE5I2qSZXT8krsc06WthdzHPOOnRWbS
QAH+iINECeVZCS88z41su7kHeDaPDHSTS+YRToLL9K+1Y4jSrQ0aCK7qx1reHKC6
NqPDBzVeMHzXtWIylJwgM3E=
=d1Ye
-----END PGP MESSAGE-----
root@EPC:~# echo xxx | gpg -ear [email protected]
-----BEGIN PGP MESSAGE-----

hQIMAzha1PwyPp1PARAAg+cR4+vLw2uFKWUUuf7j8Yf3WZU7v3Xxw+gT5F/yo3fo
dViI7dwW/Q5mq32HSiUxDqDsEULObcyQFr6/B2by+9t6/4SHf2UIYMFd5nZvprIt
gcQswXEVw6BLpmutDgg0/letxlFtSON70d8aB/OqoaL3OxQX3b6prw3ZCv/UcoYa
BLXm8W24F2donPHos4BYoSWNFKzNq/Z/6LnTkVaF1o8Z7OSIKCnhV3t4vwnaC/os
q34AA65f/lrDTgudMo7UoznLlDLK+VeBJaU9772z76uZnm+LVEDPt695kKBlpmBt
qQNzBY8ZL2sUQ2aq2RqjWA12dh06r3P8k45RyMKvn6Iubf0rfUK9kHUknQRM7q3A
gcQBAO2yR97ZcCAffPLjk3ZGcJ7eh92PRET8d8l2/lAKDQ24GdJENcgHBXhGu8VV
FivA9AkGThzRxtghSV1ZuX3yi7MbOSjdrs0hx82ZH73kj34+GYSkz8Q4sHK3KnM8
AZ4MUeTdM9eQET8fQVziLQU+PRxFqNo3DKb0uoqI41/klntc4VgiUOMYsqiESJBs
LF0AspsRQFWd6hO9y314tsetoIcK3xPkLq9kX2T0qYuIdgvLoe9i+kE2QxdsamBH
0Rlrm1AcRmIKBkjClGSbMsHsa6uJZD+zfDOpmWa/zgtxWe9tdjH3Er5NlR6VRDLS
QAFqDVk3yWTnq2OZotpggz+OhUz0aGKiPWhpvpdQS4yQGfiE0a94drOBEnEpuPLJ
kb0j1SLja8v09v4rLmZhhBk=
=0COd
-----END PGP MESSAGE-----
root@EPC:~#

答案1

是的,GnuPG 将时间存储在加密数据中。要看到这一点,请运行

echo xxx | gpg -ear [email protected] > encryptedexample

(使用你拥有私钥的 ID),然后

gpg --list-packets --verbose encryptedexample

将以类似的方式结束

:literal data packet:
        mode b (62), created 1599715776, name="",
        raw data: 4 bytes

其中 1599715776 是数据包的时间戳(自纪元以来以秒为单位)。

相关内容