HTTPS涉及的加密演算法講解

来源:https://www.cnblogs.com/waldron/archive/2022/10/13/16786635.html
-Advertisement-
Play Games

前言 從2015年左右開始,Google、Baidu、Facebook 等互聯網巨頭,不謀而合地開始大力推行 HTTPS, 國內外的大型互聯網公司很多也都已經啟用了全站 HTTPS 為鼓勵全球網站的 HTTPS 實現,一些互聯網公司都提出了自己的要求: 1)Google 已調整搜索引擎演算法,讓採用 ...


前言

從2015年左右開始,Google、Baidu、Facebook 等互聯網巨頭,不謀而合地開始大力推行 HTTPS, 國內外的大型互聯網公司很多也都已經啟用了全站 HTTPS
為鼓勵全球網站的 HTTPS 實現,一些互聯網公司都提出了自己的要求:

1)Google 已調整搜索引擎演算法,讓採用 HTTPS 的網站在搜索中排名更靠前;

2)從 2017 年開始,Chrome 瀏覽器已把採用 HTTP 協議的網站標記為不安全網站;

3)蘋果App Store 中的所有應用都必須使用 HTTPS 加密連接;

4)微信小程式也要求必須使用 HTTPS 協議;

5)HTTP/2和HTTP/3 協議的支持需以 HTTPS 為基礎。

因此學習HTTPS的是一件很必要的事情

https概述

超文本傳輸安全協議(英語:Hypertext Transfer Protocol Secure縮寫HTTPS,常稱為HTTP over TLSHTTP over SSLHTTP Secure)是一種通過電腦網路進行安全通信的傳輸協議。HTTPS經由HTTP進行通信,但利用SSL/TLS來加密數據包。HTTPS開發的主要目的,是提供對網站伺服器的身份認證,保護交換數據的隱私與完整性。這個協議由網景公司(Netscape)在1994年首次提出,隨後擴展到互聯網上。HTTPS是並非應用層的新協議。只是HTTP通信介面用SSL或TLS協議代替而已。

HTTP直接和TCP通信。當使用ssl時,則演變為跟ssl通信,然後再由ssl與tcp進行通信。簡單的講就是http的plus版。

在採用ssl後,http就擁有了加密、證書、完整性保護這些功能。

在講解ssl時,先講解下幾個關鍵的知識點。

加密方法

對稱密鑰加密

又稱私鑰加密、共用密鑰加密。需要對加密和解密使用相同密鑰加密演算法。由於其速度快,對稱性加密通常在消息發送方需要加密大量數據時使用。對稱性加密也稱為密鑰加密

優點:性能高

缺點:密鑰泄露風險高,因為大家共用一個密鑰,假如一方泄露這個密碼,就沒有安全可言。比如:在前後端調用的過程中使用此種演算法,如果前端js中存放密鑰,那麼就會被竊取,app端也有可能反編譯獲取。

常用的演算法:DES、3DES、AES、Blowfish、IDEA、RC5、RC6

公開密鑰加密

(英語:public-key cryptography,又譯為公開密鑰加密),也稱為非對稱加密(asymmetric cryptography),在這種密碼學方法中,需要一對密鑰,一個是私人密鑰,另一個則是公開密鑰。

優點:知道了公鑰,也無法計算出來密鑰。例如:在開發項目時,一般私鑰是保存在服務端,公鑰保存在前端,只要服務端安全,那麼私鑰就不會被竊取。

缺點:計算量大,需要消耗大量的系統資源,性能低。

常用的演算法:RSAElgamal、背包演算法、Rabin、D-H、ECC(橢圓曲線加密演算法)。

數字簽名

數字簽名主要是有兩個作用

  • 身份證明

  • 驗證信息的內容是否被篡改。

而數字簽名因為採用公鑰加密技術實現,又叫公鑰數字簽名。

示例:taker給maker給了自己的公鑰,說以後通過此公鑰可以驗證自己的身份和信息是否篡改。

有一天,taker在外遇到了點困難需要錢,想要朝maker借點錢,但是又怕無法證明自己,所以採用數字簽名。

首先他把消息內容,通過hash演算法計算出一個摘要,然後在採用自己私鑰對摘要進行加密

然後在把這個加密信息添加到郵件附件中,一同發給maker。

maker收到郵件後,用公鑰對加密信息進行解密得到了摘要。

然後在用郵件內容進行hash,生成摘要與公鑰解密出來的摘要進行比對,就可以確保此郵件是taker所發,並且內容未被篡改,然後在給taker打錢。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 摘要:本文重點介紹單個SQL語句持續執行慢的場景。 本文分享自華為雲社區《GaussDB(DWS) SQL性能問題案例集》,作者:黎明的風。 本文重點介紹單個SQL語句持續執行慢的場景。我們可以對執行慢的SQL進行單獨分析,SELECT、INSERT、UPDATE等語句都可以使用explain ve ...
  • 當前Nebula Graph的最新版本是3.2.1, Nebula Graph 的一些特點 1. 支持分散式. 相對於Neo4j, TigerGraph這些圖資料庫, Nebula 是面向分散式設計的, 因此對集群的支持比較完備, 在規模上上限要高很多. 在實際項目中存儲了180億的點邊, 這個數量... ...
  • 2.1關係數據結構形式化定義: 2.1.1關係: 單一的數據結構 - 關係: 現實世界的實體以及實體間的各種聯繫均用關係來表示 邏輯結構 - 二維表: 從用戶的角度,關係模型中的數據的邏輯結構是一張二維表 關係模型是建立在集合代數的基礎上 域:域是一組具有相同數據類型的值的集合 例:整數、實數、介於 ...
  • GreatSQL社區原創內容未經授權不得隨意使用,轉載請聯繫小編並註明來源。 GreatSQL是MySQL的國產分支版本,使用上與MySQL一致。 一、MySQL的dd表介紹 二、代碼跟蹤 三、知識應用 四、總結 一、MySQL的dd表介紹 MySQL的dd表是用來存放表結構和各種建表信息的,客戶端 ...
  • 快速上手iOS UIKit UIKit是蘋果官方的framework, 其中包含了各種UI組件, window和view, 事件處理, 交互, 動畫, 資源管理等基礎設施支持. 按照前面的介紹, 用UIKit寫UI可以用storyboard(Interface Builder)和代碼兩種方式. 大體 ...
  • 一、打包過程 1、創建唯一標識符 首先,申請蘋果開發者賬號。 沒有蘋果開發者賬號是無法進行 ios 打包上線的。 (2) 進入 https://developer.apple.com 這個網址,點擊“account” 並輸入蘋果開發者賬號進入用戶界面。 ​ (3) 點擊證書文件 ​ (4) 進入到這 ...
  • 概念 performance.now():返回值表示為從time origin之後到當前調用時經過的時間, time origin: 時間源, 時間源是一個可以被認定為當前文檔生命周期的開始節點的標準時間,計算方法如下: 如果腳本的 global object 是 Window, 則時間源的確定方式 ...
  • 這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 方法一 adb connect連接調試 前提條件: 電腦已安裝adb工具 手機和電腦連接的同一個WIFI CMD進入到adb工具所在目錄,可以使用HBuilder自帶adb,如:D:\Tools\HBuilderX\plugins\lau ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...