gpg软件支持开箱即用的对称加密。这意味着,它可以使用密码。但除了保护内容之外,确保消息的身份验证也很重要。我们的想法是创建文件本身的hashsum以及用于加密的密码。根据{{3}},流行的“消息认证码”是HMAC。输入后:
gpg --hmac --armor --symmetric --passphrase pwd1 file.txt
gpg: Invalid option "--hmac"
出现错误消息,表明软件不知道该开关。如何以正确的方式使用MAC身份验证?
答案 0 :(得分:0)
你不能。出现错误消息的原因是GPG无法使用签名类型。使用标准GPG方法简单地签名和加密文件会更好。即使您只想使用对称加密,接收方仍需要使用GPG来解密文件。正确的命令是:
gpg -o filename.txt.asc -sear $recipient_key filename.txt
这假设您也始终加密到您自己的密钥,否则命令将是:
gpg -o filename.txt.asc -sear $recipient_key -r $your_key filename.txt
如果他们没有密钥,您仍然可以只签名并加密到您自己的密钥,然后提取会话密钥,这样您就可以用它来解密文件:
gpg -o filename.txt --show-session-key -d filename.txt.asc
然后收件人将能够解密:
gpg -o filename.txt --override-session-key $session_key -d filename.txt.asc
但是,如果您真的必须使用对称加密,则可以在两个设置中完成。
首先签署文件:
gpg -o filename.txt.asc -sa filename.txt
然后对该文件进行对称加密:
gpg -o newfilename.asc -a -c filename.txt.asc
接收者需要运行两次解密命令;首先在对称加密文件上,然后在文件上第二次解密。
正常的--verify选项仅用于检查带有分离签名的已清除文件或文件。