对称加密算法相比非对称加密算法来说,加解密的效率要高得多。但是缺陷在于对于秘钥的管理上,以及在非安全信道中通讯时,密钥交换的安全性不能保障。所以在实际的网络环境中,会将两者混合使用.

例如针对C/S模型,

服务端计算出一对秘钥pub/pri。将私钥保密,将公钥公开。

客户端请求服务端时,拿到服务端的公钥pub。

客户端通过AES计算出一个对称加密的秘钥X。 然后使用pub将X进行加密。

客户端将加密后的密文发送给服务端。服务端通过pri解密获得X。

然后两边的通讯内容就通过对称密钥X以对称加密算法来加解密。

优点:

算法公开、计算量小、加密速度快、加密效率高,  安全

缺点:

在数据传送前,发送方和接收方必须商定好秘钥,然后 使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。

常见的对称加密算法有: DES、3DES、Blowfish、IDEA、RC4、RC5、RC6 和 AES

非对称加密算法: 公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。

速度较慢

常见的非对称加密算法有: RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)

Hash算法(摘要算法)

Hash算法特别的地方在于它是一种单向算法,用户可以通过hash算法对目标信息生成一段特定长度的唯一hash值,却不能通过这个hash值重新获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。

常见的摘要算法有: MD2、MD4、MD5、HAVAL、SHA

非对称加密和对称加密的优缺点相关推荐

  1. 【加密】对称加密DES和非对称加密AES、数字签名|非对称加密--公钥和私钥的区别

    目录 对称加密DES和非对称加密AES.数字签名 对称加密 1.1 定义 1.2 优缺点 1.3 常用对称加密算法 非对称加密( Asymmetric Cryptography ) 非对称加密(现代加 ...

  2. 非对称加密和对称加密

    什么是非对称加密 对称加密算法在加密和解密时使用的是同一个秘钥:而非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key, ...

  3. 细数非对称加密与对称加密的区别

    2019独角兽企业重金招聘Python工程师标准>>> 有两种加密方法常常在SSL生态系统中被提及--非对称加密与对称加密. SSL握手期间的非对称加密 当你浏览一个使用SSL证书的 ...

  4. java-信息安全(九)-基于DH,非对称加密,对称加密等理解HTTPS

    概述 java-信息安全(七)-基于非对称加密,对称加密等理解HTTPS 如果想要理解好https,请尽量了解好以上信息等. 参看文章: http://www.ruanyifeng.com/blog/ ...

  5. JackHttp -- 浅谈编码、加密(对称加密,非对称加密,Hash算法)

    如果你还不清楚 JackHttp 是什么,请戳这里!!! JackHttp 是一个网络框架系列,为什么还要分享编码和加密呢?主要有如下几个原因: HTTP 在网络传输过程中是明文的. HTTP 在网络 ...

  6. SSL证书背后的加密技术--非对称加密和对称加密

    SSL(安全套接字层)是一种标准的安全技术,用于在服务器和客户端之间建立加密连接.安装SSL证书后,就可以建立此安全连接.但这是如何实现的?数据是如何加密的?本文介绍了SSL背后的加密技术,它涵盖了非 ...

  7. Android安全加密:对称加密

    Android安全加密专题文章索引 Android安全加密:对称加密 Android安全加密:非对称加密 Android安全加密:消息摘要Message Digest Android安全加密:数字签名 ...

  8. iOS-常见三种加密(MD5、非对称加密,对称加密)

    任何应用的开发中安全都是重中之重,在信息交互异常活跃的现在,信息加密技术显得尤为重要.在app应用开发中,我们需要对应用中的多项数据进行加密处理,从而来保证应用上线后的安全性,给用户一个安全保障. 本 ...

  9. 非对称加密和对称加密的区别

    一 :概述 在现代密码学诞生以前,就已经有很多的加密方法了.例如,最古老的斯巴达加密棒,广泛应用于公元前7世纪的古希腊.16世纪意大利数学家卡尔达诺发明的栅格密码,基于单表代换的凯撒密码.猪圈密码,基 ...

最新文章

  1. Response.getWriter() 和Response.getOutputStream冲突
  2. Windows 驱动发展基金会(九)内核函数
  3. leetcode word break java,Word Break leetcode java
  4. 【机器学习基础】支持向量机超参数的可视化解释
  5. codeforces 600D Area of Two Circles' Intersection
  6. 点滴小组KTV点歌系统简介
  7. 项目属性--生成事件--后期生成事件命令行
  8. [转]Zend Framework + Smarty 应用实例
  9. (免费领取Java面试题)Java面试中经常被问到的问题
  10. MVC页面重定向'页面跳转
  11. 广东省地方税务局电子办税服务厅--卡在注册ca证书界面的处理
  12. 计算机查找的快捷键是,电脑快捷键快速查找
  13. 台式计算机无线上网设置,台式机如何设置无线上网
  14. Godaddy出售域名收益/收款提现探究——待续
  15. 2018“百度之星”程序设计大赛 - 复赛 1003 带劲的and和(位运算,很好的题)
  16. 产品经理成长经历感悟
  17. Java实现Mysql数据库备份与还原(Linux 和Windows 包含单张表备份)
  18. 微信小程序 人脸追踪+人脸识别+视频上传 页面
  19. cad怎么去除drawing1_如何设置cad2012打开已有的DWG图纸的时候不自动新的Drawing1窗口?...
  20. 关于input框的兼容性问题

热门文章

  1. dd指令打包iso文件 linux_Linux_如何在Linux操作系统下创建ISO镜像文件,1、用dd命令#dd if=/dev/cdrom - phpStudy...
  2. OSChina 周一乱弹 —— T恤能穿出立体感来
  3. 一文轻松明白 Base64 编码原理
  4. linux磁盘扩容:新增磁盘、原磁盘扩容、home/root分区扩容
  5. python中的散点图还可以这么画
  6. 服务器有国产化系统吗,服务器国产化
  7. java flash 播放器_视频播放插件Video.js
  8. c语言代码查错软件,Ubuntu下面的C语言代码检查工具 Splint
  9. 机器学习 网站大全--陆续更新中
  10. ES(三)es查询语法