深入理解加密和签名的区别

加密的目的是防止在传输过程中,数据被泄露

签名的目的是防止在传输过程中,数据被篡改

非对称加密算法(如RSA)正确的使用方法是:

1.1 公钥加密,私钥解密。(防止数据泄露)

1.2私钥签名,公钥验签。(防止数据篡改)

1.1 公钥加密,私钥解密。

私钥和公钥的关系,相当于钥匙和锁的关系。

私钥=钥匙,公钥=锁,私钥只有一把自己保存,而公钥锁可以复制很多把

你女朋友给你发送信件时,把你的锁(公钥)给她,让她把信件锁起来(加密)后发给你,你再拿你的钥匙(私钥)去解密,得到的信件可以证明这是你女朋友传过来的(防止数据被泄露

1.2私钥签名,公钥验签。

同样的例子,你给你女朋友写信,为了证明这封信的内容是你写的,你需要给你的信加上一个签名,其方法是:通过哈希算法对信件进行摘要,将摘要用你的私钥进行签名(私钥签名),如果有人篡改了信件,则摘要一定会不同,你将签名后的摘要和信件一同发出,你女朋友在收到摘要和签名后,使用你之前给的公钥及约定好的哈希算法对摘要进行解密(公钥验签),得到解密后的摘要,用同样的方法对发送来的信件也提取出摘要,两个摘要一对比,相同的话则说明数据是你想要发的内容(防止数据被篡改

在这个例子中,对数据进行了签名,但在传输过程中没有对数据加密,即不能保证这个数据是你发出的

也就是说,签名与加密完全是两个概念,也不是必须一起都实现才安全,要根据需求而定。

例如,我传输了一个下单信息:买一杯奶茶,这个信息并不是什么机密,但是要防止被人篡改改成:买2杯可乐,所以只需要对内容做签名防篡改就可以了,并不需要加密。

参考

接口安全:谈谈加密与签名的区别_加密和签名的区别-优快云博客

私钥,公钥,数字签名的区别? - 知乎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值