首页 > 其他分享 >对称加密、非对称加密 与 HTTPS

对称加密、非对称加密 与 HTTPS

时间:2022-10-24 17:11:06浏览次数:91  
标签:公钥 加密 解密 密钥 HTTPS 对称 非对称

一、对称加密(Symmetric Cryptography)
对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key)。对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。

对称加密通常使用的是相对较小的密钥,一般小于256 bit。因为密钥越大,加密越强,但加密与解密的过程越慢。如果你只用1 bit来做这个密钥,那黑客们可以先试着用0来解密,不行的话就再用1解;但如果你的密钥有1 MB大,黑客们可能永远也无法破解,但加密和解密的过程要花费很长的时间。密钥的大小既要照顾到安全性,也要照顾到效率,是一个trade-off。

对称加密的一大缺点是密钥的管理与分配,换句话说,如何把密钥发送到需要解密你的消息的人的手里是一个问题。在发送密钥的过程中,密钥有很大的风险会被黑客们拦截。现实中通常的做法是将对称加密的密钥进行非对称加密,然后传送给需要它的人。

2000年10月2日,美国国家标准与技术研究所(NIST--American National Institute of Standards and Technology)选择了Rijndael算法作为新的高级加密标准(AES--Advanced Encryption Standard)

 

二、非对称加密(Asymmetric Cryptography)
非对称加密为数据的加密与解密提供了一个非常安全的方法,它使用了一对密钥,公钥(public key)和私钥(private key)。私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥。比如,你向银行请求公钥,银行将公钥发给你,你使用公钥对消息加密,那么只有私钥的持有人--银行才能对你的消息解密。与对称加密不同的是,银行不需要将私钥通过网络发送出去,因此安全性大大提高。

目前最常用的非对称加密算法是RSA算法,是Rivest, Shamir, 和Adleman于1978年发明,他们那时都是在MIT。.NET中也有RSA算法

 

三、总结

  • 对称加密加密与解密使用的是同样的密钥,所以速度快,但由于需要将密钥在网络传输,所以安全性不高。
  • 非对称加密使用了一对密钥,公钥与私钥,所以安全性高,但加密与解密速度慢。
  • 解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。‘’

 

(1) Alice需要在银行的网站做一笔交易,她的浏览器首先生成了一个随机数作为对称密钥。

(2) Alice的浏览器向银行的网站请求公钥。

(3) 银行将公钥发送给Alice。

(4) Alice的浏览器使用银行的公钥将自己的对称密钥加密。

(5) Alice的浏览器将加密后的对称密钥发送给银行。

(6) 银行使用私钥解密得到Alice浏览器的对称密钥。

(7) Alice与银行可以使用对称密钥来对沟通的内容进行加密与解密了。

 

 

 


原文链接:https://www.cnblogs.com/jfzhu/p/4020928.html

 

 

 

 

标签:公钥,加密,解密,密钥,HTTPS,对称,非对称
From: https://www.cnblogs.com/suBlog/p/16822103.html

相关文章

  • 硬件加密芯片介绍 及 加密芯片选择(加密IC) 加密芯片原理
    前端时间有研究多款加密芯片,加密算法实现,以及破解可能,也有一些个人的观点,仅供参考; 一,加密芯片的来源及工作流程:市面上的加密芯片,基本都是基于某款单片机,使用I2C或SPI等......
  • postman或curl访问https域名,报错unable to verify the first certificate,支付宝支付异
    postman或curl访问https域名,报错unabletoverifythefirstcertificate,支付宝支付异步回调,https不通问题  如上述问题,网上大部分的解决方法就是关闭postman的ssl验......
  • java 修改HttpServletRequest的参数或请求头
     场景:过滤器中获取参数Token并添加到请求头(用户认证兼容老系统)请求头和请求参数是不能直接修改,也没有提供修改的方法,但是可以在过滤器和拦截器中使用​​​HttpServletReq......
  • Qt使用https协议发送带参数的post请求
    背景:现在公司项目需要做一个检测更新的功能,通过访问后台接口,判断是否需要更新。后台接口是https协议的,接口需要post请求,需要带参数,来判断是哪个软件需要做检测更新的操......
  • js前端 md5加密
    1、在utils目录下新建md5.js在这里,我把md5()这个方法使用export进行了导出,方便在其他地方使用es6import引入使用/**JavaScriptMD51.0.1*https://github.com/b......
  • .Net对接Java接口加密不通过?
    前言  相信又不少小伙伴在对接第三方接口时遇到过这种情况:参数、排序、加密方式都按照接口文档进行处理了,可就是签名不通过,然后开始怀疑是不是参数漏了?参与加密的参数不......
  • SpringBoot中https的配置
    配置#https://help.aliyun.com/document_detail/365559.html#HTTPS协议默认端口号为443,需要使用其他端口时,您可以在此处自定义。server.port=8002#https://docs.ora......
  • docker部署思源笔记并配置nginx支持https
    dockercompsoe的完整配置docker-compose.yml#构建docker-compose项目#dockercompose--log-levelINFOup--build#dockercompose--log-levelINFOup-d--bu......
  • MD5 哈希加密算法 - C++ 实现
    MD5加密算法-C++实现写在前头:还在学习中!整个文档写的很匆忙,肯定还有很多不周到的地方.欢迎在评论中提出你的宝贵意见!!算法背景BackgroundMD5消息摘要算法......
  • postman接口测试-时间戳和MD5加密
    在使用postman工具进行接口测试的时候,通过鉴权方式,有的接口字段需要获取当前或者最近时间段内时间戳,有的字段还需要进行MD5加密,这个时候我们就面临怎么获取时间戳和对相关......