• https、socket、http协议


    一、https

    https 其实是由两部分组成:http+ssl(Secure Sockets Layer 安全套接层)/tls(Transport Layer Security 继任者安全传输层),也就是在 http 上又加了一层处理加密信息的模块,服务端和客户端的信息传输都会通过 tls 加密,传输的数据都是加密后的数据。加解密过程:

    1)客户端发起 https 请求(就是用户在浏览器里输入一个 https 网址,然后连接到 server的 443 端口

    2)服务端的配置(采用 https 协议的服务器必须要有一塔数字证书,可以自己制作, 也可以向组织申请,这套证书就是一对公钥和私钥)。

    3)传输证书(这个证书就是公钥,只是包含了很多信息)

    4)客户端解析证书(由客户端 tls 完成,首先验证公钥是否有效,若发现异常,则弹出一个警示框,提示证书存在问题,若无问题,则生成一个随机值,然后用证书对随机值进行加密

    5)传输加密信息(这里传输的是加密后的随机值,目的是让服务端得到这个随机值, 以后客户端和服务端的通信就可以通过这个随机值来进行加密了)

    6)服务端解密信息(服务端用私钥解密后得到了客户端传来的随机值,然后把内容通过该值进行对称加密。所谓对称加密就是,将信息和私钥通过某种算法混在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全)

    7)传输加密的信息

    8)客户端解密信息,用随机数来解。

    总结:客户端有公钥,服务器有私钥,客户端用公钥对“对称密钥”进行加密,将加密后的对称密钥发送给服务器,服务器用私钥对其进行解密。公钥和私钥用来加密密钥,对称密钥用来加密数据。

    可逆加密(接口传输):对称和非对称。

    不可逆加密(密码存储):MD5、SHA等。

    什么是对称加密技术?

    对称加密算法使用起来简单快捷,密钥较短,且破译困难,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DES的加密性好,而且对计算机功能要求也没有那么高

    对称加密算法在电子商务交易过程中存在几个问题:

      1、要求提供一条安全的渠道使通讯双方在首次通讯时协商一个共同的密钥。直接的面对面协商可能是不现实而且难于实施的,所以双方可能需要借助于邮件和电话等其它相对不够安全的手段来进行协商;

      2、密钥的数目难于管理。因为对于每一个合作者都需要使用不同的密钥,很难适应开放社会中大量的信息交流;

      3、对称加密算法一般不能提供信息完整性的鉴别。它无法验证发送者和接受者的身份;

      4、对称密钥的管理和分发工作是一件具有潜在危险的和烦琐的过程。对称加密是基于共同保守秘密来实现的,采用对称加密技术的贸易双方必须保证采用的是相同的密钥,保证彼此密钥的交换是安全可靠的,同时还要设定防止密钥泄密和更改密钥的程序。

      假设两个用户需要使用对称加密方法加密然后交换数据,则用户最少需要2个密钥并交换使用,如果企业内用户有n个,则整个企业共需要n×(n-1) 个密钥,密钥的生成和分发将成为企业信息部门的恶梦。

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

    什么是非对称加密技术

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

     非对称加密的典型应用是数字签名。

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

    Hash算法(摘要算法)

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

    常见的Hash算法有MD2、MD4、MD5、HAVAL、SHA

    二、http(端口80)和socket区别

    1.http只基于tcp;socket基于tcp或udp。

    2.http只能在客户端向服务器发出请求后,服务器才能回送数据;socket双方都可以随时主动发送数据。

    3.socket效率高,不用解析http头部字段。

  • 相关阅读:
    .Net cache与cache更新
    用内网服务器对接微信公众号服务
    关于王者荣耀防沉迷以及各种实名认证
    【Springboot】用Springboot Admin监控你的微服务应用
    【Springboot】Springboot整合Jasypt,让配置信息安全最优雅方便的方式
    【Java库】如何使用优秀的加密库Jasypt来保护你的敏感信息?
    【Java实例】使用Thumbnailator生成缩略图(缩放、旋转、裁剪、水印)
    【MongoDB】用Docker安装一个MongoDB最新版玩玩
    【MongoDB】2019年MongoDB中文社区广州大会,干货满满的分享活动
    【Spring】Spring的定时任务注解@Scheduled原来如此简单
  • 原文地址:https://www.cnblogs.com/cing/p/8653741.html
Copyright © 2020-2023  润新知