-
由于非对称性加密对一个明文进行加密时,速度会比较慢;但签名又无法保证机密性。
-
所以在实际的应用过程中,会用hash算法来实现数字签名的功能,以此保证消息传输的完整性。
-
hash算法是单向的,会按约定生成固定长度的二进制位(字符位)。但只要消息的内容发生了改变,算法产生的hash的值就会不同;也就是说只有消息内容完全一样时,hash值才会一样。
-
hash+签名的基本实现原理,是对hash值进行签名,因为一旦密文内容发生变化,hash也一定会发生变化的。
-
实现思路:报文通过hash算法生成对应的hash值(报文摘要),然后对hash值进行签名(用A的私钥对hash值进行签名),然后将加密后的hash值和报文捆绑在一起进行发送;B收到以后,会先用A的公钥解密hash值(核实签名),再对报文用相同的hash算法生成另一个hash值;只要新生成的hash值与之前的hash值相等,就意味着报文内容是完整的。