数字签名
2018-06-01 本文已影响0人
我就是非主流
数字签名是一种身份认证,在数据传递过程中防止被别人篡改而诞生的一种加密算法,例如A向B发送一组数据时为了保证B收到的就是A的数据,需要A提供一个身份证明,即数字签名。

上图所示:
发送方设为A,接收方设为B;
A要给B发送一份加密数据,这里的数据为“hello kitty”,运用非对称加密算法,A首先拿到B的公钥对数据进行加密并生成密文,再对数据的本身或对其摘要进行hash,再通过自己的私钥对hash值进行加密生成数字签名,最后密文跟签名一并发送给B;
B收到A发送过来的密文和数字签名之后通过自己的密钥对密文进行解密获得数据原文,即“hello kitty”,再对A的公钥对A的签名进行解密并获得原文摘要,最后拿签名摘要跟收到的数据原文hash值摘要对比下,看是否为相同,如果是相同的就说明此次交易为安全,表明这个数据就是A所发过来的,没被别人篡改,如果不为相同,表明数据在传递过程中已被别人篡改,不安全的。