非对称加解密,私钥和公钥到底是谁来加密,谁来解密

第一种用法:公钥加密,私钥解密。---用于加解密
第二种用法:私钥签名,公钥验签。---用于签名

有点混乱,不要去硬记,总结一下:
你只要想:
既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密,所以可得出公钥负责加密,私钥负责解密;
既然是签名,那肯定是不希望有人冒充我发消息,只有我才能发布这个签名,所以可得出私钥负责签名,公钥负责验证。

同一种道理,我在换种说法:
私钥和公钥是一对,谁都可以加解密,只是谁加密谁解密是看情景来用的:
第一种情景是签名,使用私钥加密,公钥解密,用于让所有公钥所有者验证私钥所有者的身份并且用来防止私钥所有者发布的内容被篡改.但是不用来保证内容不被他人获得。
第二种情景是加密,用公钥加密,私钥解密,用于向公钥所有者发布信息,这个信息可能被他人篡改,但是无法被他人获得。

比如加密情景:
如果甲想给乙发一个安全的保密的数据,那么应该甲乙各自有一个私钥,甲先用乙的公钥加密这段数据,再用自己的私钥加密这段加密后的数据.最后再发给乙,这样确保了内容即不会被读取,也不会被篡改.

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 113
    点赞
  • 223
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 34
    评论
Python中使用对称加密算法实现加密解密的机制。这种加密方式是通过使用一对密,来实现数据解密的过程。其中,是由经过复杂运算得到的,具有加密能力;而则由密持有者自己持有,用于解密数据。这样一来,即便是加密数据不慎泄露,仍然是安全的,因为数据只能由对应的进行解密。Python中支持RSA算法,可以用pycryptodome或cryptography库来实现对称加密。 使用对称加密算法,首先需要对数据进行加密。这里使用RSA算法作为例子:选择两个不同且较大的质数p,q,计算出n=p*q,然后选取不大于 (p-1)*(q-1) 的数e作为(这里称为指数),计算出对应的d(这里称为指数)。然后,将指数和n组成一个指数和n组成一个加密的过程就是用指数e和n对数据进行加密解密的过程就是用指数d和n对加密数据进行解密。 Python中可以使用如下代码实现RSA加密解密: ```python # 加密 from Crypto.PublicKey import RSA msg = b'this is a secret message' key = RSA.generate(2048) pub_key = key.publickey() encrypted = pub_key.encrypt(msg, 32) # 解密 decrypted = key.decrypt(encrypted) ``` 需要注意的是,使用RSA算法进行解密可能会涉及到数据长度的限制,因此可以采用数据分块的方式进行解密。另外,在实际使用中,需要确保的安全性,以免遭到泄露而导致数据的不安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全冉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值