原文链接:https://www.jianshu.com/p/d56a72013392

RSA 是一种非对称加密算法,在实际业务中经常使用此算法对数据进行加密。但是它的加解密速度较慢,不太适用于高并发的业务场景,一般用它做少量的数据加密。

什么是对称加密和非对称加密?

对称加密:加密和解密使用的是同一个密钥,加解密双方必须使用同一个密钥才能进行正常的沟通。

非对称加密:需要两个密钥来进行加密和解密,公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥) ,公钥加密的信息只有私钥才能解开,私钥加密的信息只有公钥才能解开。

非对称加密工作过程

甲乙双方使用非对称加密算法的方式进行数据传输

  • 乙方生成一对密钥(公钥与私钥),并将公钥向甲方公开
  • 甲方获取到公钥后,将需要传输的数据用公钥进行加密发送给乙方
  • 乙方获取到甲方加密数据后,用私钥进行解密
  • 在数据传输过程中,即使数据被攻击者截取并获取了公钥,攻击者也无法破解密文,因为只有乙方的私钥才能解密

非对称加密中,究竟是公钥加密还是私钥加密?

  • 对于加密:公钥加密,私钥解密。毕竟公钥可以公开,但是私钥只有你自已知道,你也同样希望只有你自己才能解密
  • 对于签名:私钥加密,公钥解密。好比你的签名只有你自已签的才是真的,别人签的都是假的。

RSA算法原理:

  https://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html

https://www.ruanyifeng.com/blog/2013/07/rsa_algorithm_part_two.html

最新文章

  1. Python yield 使用浅析
  2. 点击按钮回到页面顶部或者某个高度时的问题,JQUERY
  3. java.lang.ThreadGroup.enumerate
  4. SharedObject使用:在FluorineFx.net与Flex中使用共享对象维护在线用户列表实例【转】
  5. myeclipse2014破解版本链接
  6. Serach
  7. sonix uvc驱动的加入 RT5350支持H264
  8. 我的Android进阶之旅------>经典的大牛博客推荐(排名不分先后)!!
  9. 判断客户端使用的是安卓还是苹果,然后加载对应的css文件
  10. Array.prototype.slice.call()方法详解
  11. Django_modelform组件
  12. Android中Ijkplayer最简单的使用
  13. (4)Python列表list
  14. Date类、SimpleDateFormat类
  15. SQL Server中自定义函数:用指定的分隔符号分割字符串
  16. Day 05 可变不可变、数据类型内置方法
  17. Oracle win32_11gR2_database在Win7下的安装与卸载
  18. Linux 下查看系统当前登录用户信息
  19. Alpha阶段个人贡献分
  20. Unity透明Shader

热门文章

  1. EF Core自动将实体映射到数据库
  2. XAF特性属性记录
  3. springmvc关于通过使用路径占位符出现中文乱码解决办法
  4. 关于服务器上的XML
  5. RIDE,如何指定report,log,output的存放位置
  6. [Vs和Reshaper]Vs Studio配合Resharper插件,某些快捷键无法使用的情况,Alt+F7
  7. 2022-05-20内部群每日三题-清辉PMP
  8. # HUAWEI--IPv6 over IPv4隧道配置(简单案例)
  9. unity 实现Game窗口的Stats 【转自蛮牛】
  10. 配置tomcat 服务 启动模式