前言https,SSH协议和MD5加密是前端可能会接触到的加密,所以我就将他们进行了一个归纳.1.https1.1原理A.就是在http加入SSL层,是http安全的基础;B.htts协议是在http基础上加了SSL协议;C.使用443端口,http是80端口;D.由网景公司开发并内置在浏览器中;1.2作用A.建立一个信息安全通道,来保证数据传输的安全;B.确认网站的真实性,可以查看网站认证的真实性;1.3核心是SSL层A.位置:是一个安全套层,是介于TCP?IP之间;B.分类:SSL记录协议:建立在TCP之上,为数据提供数据封装、压缩、加密;SSL握手协议:建立在记录之上,数据传输之前双方的身份验证、协商加密算法、交换密钥;C.SSL服务器认证过程:客户端发送请求服务器判断是否需要生成新主密钥,需要则返回客户端收到信息,产生一个主密钥,并用公钥加密传输服务器恢复该主密钥,并返回一个认证信息1.4 SSL协议A.SSL协议包括:握手(凭证交换和验证)和记录协议(数据进行加密);B.SSL握手协议过程:1.客服端发送SSL的版本号,算法种类,产生的随机数等;2.服务器发送服务器的SSL协议的版本号,算法种类和证书(里面有公钥);3.客服端验证;4.验证通过随机产生对称密码,公钥加密产生预主密码,传输给服务器;5.服务器可以要求验证身份,包括客户证书和签名随机数;6.验证通过:服务器用私钥解开密码,对称密钥产生;7.客服端发信息确认后面数据采用该通讯;8.服务器端回应C.整个过程涉及到3次请求,3次响应1.5 搭建https网站这个可能更多是后台技术,所以我在这里贴一个链接,如果想了解的可以进去看:如何申请https证书、搭建https网站2.SSH2.1 概念非对称性加密,包括传输层,用户认证和连接协议2.2 原理A,在a计算机中产生一对公钥和私钥B,私钥不动,把公钥发送给计算机b,公钥很复杂,就算过程被窃取,第三方不懂什么意思C,a和b首次进行尝试通讯,a发送的内容通过a存放的私钥进行加密,在网络中进行密文件传输D,b也会对该端内容使用公钥解密,如果能两台计算机就结成亲密关系E,以后a和b发送消息用私钥和公钥进行数据加密解密操作2.3 应用比较常见一个应用是和github建立一个友好关系A.本地生成密钥:ssh-keygen -t rsaB.密钥生成再c盘,将公钥方法github中,然后下次通讯就可以用SSH通讯使用ssh连接gitHub3.MD53.1.概念信息摘要算法3.2.特性A.MD5加密输出是32位字符串;B.相同的内容使用MD5加密后,得到的内容一样的;C.MD5无法反向解密,唯一就是暴力碰撞破解(就是试32位密码);D.为了防止暴力破解,可以加盐处理;E.这个应该就是前端用的比较多的对数据加密的方式;3.3.使用方法:A.下载 npm i -S blueimp-md5;B.引包C.加密方式: 普通加密:var val=md5('value'); 加盐:var val=md5('value','这是第一次加盐处理');4.SSL,SSH和md5的对比1.SSL是一个独立的安全套层加密协议; 位于TCP(应用层)和IP(网络层)之间; 只是起到将数据加密和验证作用;2.SSH有加密,连接和认证功能,也是一种协议;3.md5只是简单讲数据加密传输或者被存贮到数据库;4.最本质的区别:SSL,SSH是一个协议,而md5是一种数据加密方式;5.结语刚开始由于自己题目定义有错误,在这里感谢@暮尘Pluto @Nitron @cevin提出的建议,现在已经对文章标题进行了修改.很开心你还能看到这里,欢迎交流,这种一般面试会问到,可以先收藏着.参考文章:使用ssh连接gitHub如何申请https证书、搭建https网站
