一下子讲清楚加密解密和签名验签

一下子讲清楚加密解密和签名验签


很多文章说的很多,但是都让人搞不清楚。其实签名就是加密,只不过是加密后的处理方式不一样。
首先要明白有两组四个密钥:
A的公钥(PUB_A),A的私钥(PRI_A);

B的公钥(PUB_B),B的私钥(PRI_B)。

很多文章都笼统说公钥私钥,其实是不对的,要说清楚是谁的公钥和私钥。A的公钥和私钥配对,B的也是自己配对,他们相互之间是无法配对的!
所以,A的私钥加密的,只能用A的公钥解密,
所以双方要互相加解密的话,每一边都要有自己的私钥和对方的公钥。这两个不是一对的!是和对方手里的进行配对的!

## 加密:

比如原先有abcde,对方用你的公钥加密后变成了#29tfg,你完全看不出来原来是什么,你要看,要用你的私钥解密。至于为什么用你的公钥加密在用你的私钥解密,而不是对方的私钥加密对方的公钥解密,技术上是没有区别的,但是从实践上可以模拟一下:
对方用自己的私钥加密,然后把数据发给了你,这时候你要用对方的公钥解密,如果是确定的一对一,那么完全可以。但是问题来了,如果是多方呢?信息已经加密了,面目全非,你根本不知道谁发过来的,这时候你用哪一个公钥去解密?总不能一个一个试吧。
所以另一种方式就完美胜出。大家用你的公钥加密,那么不管是谁发给你的,你都可以用你的私钥解密。完全不存在任何障碍。
所以你们明白了为什么要公钥加密,私钥解密吧。确切说,使用你的公钥加密发给你的东西,你用你的私钥解密。


## 签名
加密解决的问题是我知道要把东西发给谁,需要秘密发送不让被人知道的问题。
还有一个问题就是别人发给我的东西,我如何确定是那个人发的。比如一条短信写着明天去公园接头,发送人是小红。可是你如何确定是小红发的?伪造一条短信根本不是问题。
所以,小红可以在信息后面加一个签名来证明这个信息就是小红发的,字迹很难造假,再不行就加一个指纹,再不行呢?就是把前面信息的内容加密一下,作为签名附加在这个信息后面,那就基本无法伪造了。
这就是签名,
比如信息是ABCDE,加密后是¥IDS@,那么签名就是:
ABCDE+¥IDS@=ABCDE¥IDS@
所以最后的信息是原始信息加上加密后的信息。
原始信息里面有发送人的明文名称,比如id或者姓名,那么根据这个我们就可以用对应的公钥去解密,然后把解密出来的内容和原文进行比较来确定是不是这个人签名的!
这就是对方用他的私钥签名,你在用对方的公钥解密。这个逻辑是和前面的加密完全不同的。这里是有明文的,我们已经知道了谁签名的,所以用对方的公钥解密就行了。
如果有人非较劲说对方用公钥加密我再用他的私钥解密行不行,那就要看看你的大脑逻辑是不是出问题的。首先你不会有对方的私钥,其次对方的公钥是公开的,大家都有,就失去了签名的唯一性。

明白了前面这些道理,再看看下面这篇文章,你就会很清楚加密和签名的那些事。不会再纠结于都是加密,为啥还整了两个名词的纠结了。
-----------------------------------
贾怀庆同学 2020-09-27 16:49:12  48  收藏 1

签名:又叫数据签名,主要就是身份的鉴别,保证信息是某人签发的。

加密:对信息进行特殊的处理,让其他人无法识别,只有特定的人才可以解密查看真正的信息内容。

例如:A给B发送经过签名加密信息来说:(下面文字说的是签名加密的作用)
1、A对信息签名的作用是确认这个信息是A发出的,不是别人发出的;
2、加密是对内容进行机密性保护,主要是保证信息内容不会被其他人获取,只有B可以获取。
也就是保证整个过程的端到端的唯一确定性,这个信息是A发出的(不是别人),且是发给B的,
只有B才被获得具体内容(别人就算截获信息也不能获得具体内容)。

密钥的概念:

具体说来,涉及到密钥相关的东西。密钥有公钥和私钥之分。
那么这里一共有两组四个密钥:
A的公钥(PUB_A),A的私钥(PRI_A);

B的公钥(PUB_B),B的私钥(PRI_B)。

公钥一般用来加密,私钥用来签名。
通常公钥是公开出去的,但是私钥只能自己私密持有。
公钥和私钥唯一对应,用某个公钥签名过得内容只能用对应的私钥才能解签验证;

同样用某个私钥加密的内容只能用对应的公钥才能解密。
这时A向B发送信息的整个签名和加密的过程如下:
1、A先用自己的私钥(PRI_A)对信息(一般是信息的摘要)进行签名。
2、A接着使用B的公钥(PUB_B)对信息内容和签名信息进行加密。
这样当B接收到A的信息后,获取信息内容的步骤如下:
1、用自己的私钥(PRI_B)解密A用B的公钥(PUB_B)加密的内容;
2、得到解密后的明文后用A的公钥(PUB_A)解签A用A自己的私钥(PRI_A)的签名。

从而整个过程就保证了开始说的端到端的唯一确认。
A的签名只有A的公钥才能解签,这样B就能确认这个信息是A发来的;
A的加密只有B的私钥才能解密,这样A就能确认这份信息只能被B读取。wchart.js/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值