摘要:发送方可以用X509数字证书对要发送文件的报文摘要进行签名,接收方再用X509数字证书验证发送方发出的文件是否被其他人篡改。
实际场景描述如下:
Bob有一份重要的商务文件要送给Alice和Jack;Alice和Jack在收到Bob的商务文件后,需要确认此商务文件的真实性,即要验证文件来源自Bob,而且要验证文件内容没有被篡改过。双方对文件校验的流程简单描述如下:
1. Bob 生成X509证书并导出公钥和私钥文件,私钥文件只留给自己;公钥文件发给Alice和Jack;
2. Bob先用Hash算法生成商务文件的报文摘要信息,然后再用私钥进行签名;
3. Bob把原商务文件、签名信息和公钥文件打包一起发给Alice和Jack;
4. Alick和Jack校验商务文件是否来自Bob,并且内容是否被篡改过。
流程图如下:
Alice和Jack收到打包的文件后,重新利用Hash算法对该商务文件计算报文摘要信息,然后再用Bob的公钥文件验证生成的报文摘要信息是否和Bob发送来的签名一致。如果一致,则说明商务文件没有被篡改,如果不一致,则说明商务文件被篡改。流程图如下:
程序代码如下:
1. Bob用SHA1算法计算报文摘要