前面Bob使用Alice的公钥对code.php
进行了加密,并发送给了Alice,实际上,从Alice的角度来讲还是有风险的,因为Alice在收到code.php.gpg
后,虽然可以使用自己的私钥解密,但她并不能确定这个文件一定是Bob发送给他的。Alice如何确定这个文件是Bob发送的呢?这就需要Bob多做一件事:对要发送的code.php
进行数字签名,然后Alice用Bob的公钥对其进行确认。
将加密文件和签名信息放在一个文件中
gpg -u bob@docboon.io -r alice@docboon.io -s -e code.php
这个命令将会生成code.php.gpg
文件,这个文件中已经包含了Bob的签名信息。当Alice收到这个文件后使用
gpg -d code.php.gpg
会清晰的看到原文件和Bob的签名信息,前提是Alice一定要有Bob的公钥。
将源文件和签名信息分离
gpg -b code.php
这个命令将会生成code.php.sig
文件,这个文件中已经包含了Bob的签名信息。当Alice收到code.php
和code.php.sig
文件后使用
gpg --verify code.php.sig
来验证发送者的身份。
gpg -a -b code.php
这个命令将会生成code.php.asc
文件,这个文件中已经包含了Bob的签名信息。当Alice收到code.php
和code.php.sig
文件后使用
gpg --verify code.php.asc
来验证发送者的身份。