第一种用法:公钥加密,私钥解密。—— 用于加解密

第二种用法:私钥签名,公钥验签。—— 用于签名

有点混乱,不要去硬记,总结一下:

你只要想:

既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密,所以可得出公钥负责加密,私钥负责解密;

既然是签名,那肯定是不希望有人冒充我发消息,只有我才能发布这个签名,所以可得出私钥负责签名,公钥负责验证。

同一种道理,我在换种说法:

私钥和公钥是一对,谁都可以加解密,只是谁加密谁解密是看情景来用的:

第一种情景是签名,使用私钥加密,公钥解密。用于让所有公钥所有者验证私钥所有者的身份并且用来防止私钥所有者发布的内容被篡改,但是不用来保证内容不被他人获得。

第二种情景是加密,用公钥加密,私钥解密。用于向公钥所有者发布信息,这个信息可能被他人篡改,但是无法被他人获得。

比如加密情景:

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

(SAW:Game Over!)

非对称加解密,私钥和公钥到底是谁来加密,谁来解密?相关推荐

  1. asp版 vbscript RSA公钥加密 / 私钥解密 / 私钥签名 / 公钥验签(支持中文)分段加密解密

    最近有空在把自己的asp站点后端函数全部整理了下,在弄RSA的时候遇到了坑了,然后找到下面这位兄弟刚好发布的文章: https://blog.csdn.net/todaygods/article/de ...

  2. ASP VBSCRIPT VBA RSA 公钥加密 私钥解密 私钥签名 公钥验签

    <% '@title: Class_Crypt_Rsa '@author: ekede.com '@date: 2020-10-28 '@description: RSA 公钥加密->私钥 ...

  3. java rsa加密解密_前端实现对请求参数进行RSA加密amp;解密,针对字符串过长进行分段加密amp;分段解密的处理...

    前言 在需求开发中,为了安全起见,我们都会难免遇到需要对一些敏感参数进行加密或者解密.所以,今天给大家分享的就是使用jsencrypt对请求参数进行RSA加密与解密,发这篇文章其实主要因为近期我的一位 ...

  4. SM2国密——前端加密,后端解密(备忘)

    问题:前端提交请求时,用户名及密码到后台的过程明文传输,不安全,所以通过对账号和密码进行SM2加密后再进行提交,后台接收后再进行解密获取. SM2加密知识:https://blog.csdn.net/ ...

  5. 分享一个RSA加解密工具类,公钥加密私钥解密、私钥加密公钥解密、私钥签名公钥验签、生成公钥私钥

    测试: public static void main(String[] args) {try {//生成公钥私钥Map<String, Object> map = RSAUtil.ini ...

  6. rsa大数加密c语言,C语言:基于OpenSSL-RSA实现RSA非对称加解密

    关于OpenSSL的介绍和安装在此不多赘述,可以在网上找到很多相关资料,各位感兴趣可以去了解下(自觉对OpenSSL开源库只是初级使用阶段,也就不在此"秀下限"了),直接进入主题, ...

  7. RSA用私钥加密数据公钥解密数据(不是签名验证过程)

    RSA用私钥加密数据公钥解密数据,严格的来说,并不安全.但是最近在写一个keygen的时候,软件作者是这么用的,所以只能搞一个这样的. 常规自带的一些rsa密码utils里面并没有这种功能.只有封装好 ...

  8. 公钥加密私钥解密私钥加密公钥解密

    公钥加密体制 1.公钥加密体制用于保密性时,就是公钥加密,私钥解密. 因为公钥是可以公开了, 那么任何人都可以使用公钥对信息进行加密,但是只有持有私钥的人才能正确解密.这样就保证了信息的保密性,因为只 ...

  9. python能解密java的_实现Java加密,Python解密的RSA非对称加密算法功能

    摘要 因为最近业务需要使用到openssl的rsa非对称加密算法,研究了下它的使用方式,但是特殊在于前端分IOS和android两端,所以前端部门要求使用java给他们做一个加密工具包,但是因为服务端 ...

最新文章

  1. 2、求100以内的素数之和。(20分)
  2. Vue.js Class 与 Style 绑定
  3. Buuctf(PWN)ciscn_2019_c_1
  4. 《openssl编程》之基础知识
  5. 【CASS精品教程】CASS9.1土方量的计算方法汇总
  6. 交叉报表列头排序时遇到的oracle问题—oracle ORA-12704:字符集不匹配、varchar2转化为nvarchar2字符缺失、case when else后的字符类型要一致...
  7. linux i2c adapter 增加设备_「正点原子Linux连载」第六十二章Linux SPI驱动实验(一)...
  8. Mutex和内存可见性
  9. 无线网卡在使用过程突然不好使的解决方法,Deepin Linux 15.9与Windows 10双系统
  10. csdn 挣积分和c币方法指南
  11. FPGA——sdram控制器1
  12. 手电筒app制作实录
  13. 【opencv】支付宝AR实景红包领取方法
  14. 大开眼界的4款电脑软件,其中3款大小不到10M,功能却逆天
  15. 微信小程序连接华为云ModelArts的方法以及一些小坑(一)
  16. java将汉字转成拼音首字母大写字母_Java 将汉字转换为拼音并取首字母大写
  17. matlab 遍历每个像素点,Mat中两种像素遍历方法比较
  18. 上古卷轴php代码,上古卷轴5负重代码使用方法及修改方法介绍
  19. webpack的配置和使用
  20. django图片上传到oss_Django上传文件

热门文章

  1. android:layout_gravity=end,Android中 layout_gravity和gravity的区别
  2. (第一次)NODEJS学习笔记
  3. 拯救者Y7000P 2020H款安装deepin20.5后资源空闲时经常出现风扇狂转现象
  4. 【收藏】sonar-scanner扫描代码出错 SonarQube svn: E170001
  5. java JUC线程池:Executors.newSingleThreadExecutor代码示例
  6. Django REST Framework(DRF)教程:快速入门
  7. 【收藏】解决关闭Hadoop时no namenode to stop异常
  8. Apache Subversion command line tools下载地址 svn命令行客户端
  9. 【收藏】Geomesa(三)图层的裁剪分析
  10. Docker构建Spark镜像手动执行命令示例