常見https,SSH協議和MD5加密方式分析

前言

https,SSH協議和MD5加密是前端可能會接觸到的加密,因此我就將他們進行了一個概括.html

1.https

1.1原理

A.就是在http加入SSL層,是http安全的基礎;
B.htts協議是在http基礎上加了SSL協議;
C.使用443端口,http是80端口;
D.由網景公司開發並內置在瀏覽器中;前端

1.2做用

A.創建一個信息安全通道,來保證數據傳輸的安全;
B.確認網站的真實性,能夠查看網站認證的真實性;git

1.3核心是SSL層

A.位置:是一個安全套層,是介於TCP?IP之間;
B.分類:
SSL記錄協議:創建在TCP之上,爲數據提供數據封裝、壓縮、加密;
SSL握手協議:創建在記錄之上,數據傳輸以前雙方的身份驗證、協商加密算法、交換密鑰;
C.SSL服務器認證過程:
客戶端發送請求
服務器判斷是否須要生成新主密鑰,須要則返回
客戶端收到信息,產生一個主密鑰,並用公鑰加密傳輸
服務器恢復該主密鑰,並返回一個認證信息github

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.SSH

2.1 概念

非對稱性加密,包括傳輸層,用戶認證和鏈接協議數據庫

2.2 原理

A,在a計算機中產生一對公鑰和私鑰
B,私鑰不動,把公鑰發送給計算機b,公鑰很複雜,就算過程被竊取,第三方不懂什麼意思
C,a和b首次進行嘗試通信,a發送的內容經過a存放的私鑰進行加密,在網絡中進行密文件傳輸
D,b也會對該端內容使用公鑰解密,若是能兩臺計算機就結成親密關係
E,之後a和b發送消息用私鑰和公鑰進行數據加密解密操做npm

2.3 應用

比較常見一個應用是和github創建一個友好關係
A.本地生成密鑰:ssh-keygen -t rsa
B.密鑰生成再c盤,將公鑰方法github中,而後下次通信就能夠用SSH通信
使用ssh鏈接gitHub瀏覽器

3.MD5

3.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網站

相關文章
相關標籤/搜索