《計算機網絡》實驗報告八 加密、數字簽名與證書

目? 錄

1、實驗目的

2、實驗環境

3、實驗內容

3.1 對稱加密

3.2 散列函數

3.3 非對稱加密

3.4 數字簽名

3.5 證書

4、實驗結果與分析

4.1 對稱加密

4.2 散列函數

4.3 非對稱加密

4.4 數字簽名

4.5 證書

5、實驗小結

5.1 問題與解決辦法:

5.2 心得體會:


1、實驗目的

? ? ? ? 1、了解對稱加密、非對稱加密體制概念

? ? ? ? 2、了解散列函數、數字簽名和數字證書的概念和理論

? ? ? ? 3、掌握基于Openssl的對稱加密、密鑰對的創建和應用

? ? ? ? 4、掌握基于Openssl數字簽名和數字證書的創建和應用


2、實驗環境

? ? ? ? 1、硬件要求:阿里云云主機ECS 一臺、筆記本電腦一臺

? ? ? ? 2、軟件要求:Linux/ Windows 操作系統


3、實驗內容

????????OpenSSL是一個開放源代碼的軟件庫包,應用程序可以使用這個包來進行安全通信,避免竊聽,同時確認另一端連接者的身份。這個包廣泛被應用在互聯網的網頁服務器上。

????????參考文獻

https://www.openssl.org/

https://gitee.com/mirrors/openssl?

utm_source=alading&utm_campaign=repo#download

https://www.openssl.org/

https://www.jianshu.com/p/fb2ae3dc7986

3.1 對稱加密

????????安裝Openssl,并準備任意內容的文本文檔JM.txt,利用對稱加密算法對JM.txt進行加密和解密操作。

3.2 散列函數

????????計算JM.txt的MD5和SHA256散列值。

3.3 非對稱加密

????????創建2048位的公鑰密碼體制RSA密鑰對。利用創建的公鑰加密JM.txt,私鑰進行解密操作。

3.4 數字簽名

????????對文件JM.txt進行數字簽名并鑒別。

3.5 證書

????????使用openssl創建自簽名證書。


4、實驗結果與分析

4.1 對稱加密

????????1. 登錄阿里云服務器,使用如下命令進行OpenSSL的下載與安裝。

yum install openssl openssl-devel -y

????????2. 使用以下命令進行JM.txt文本文件的創建以及在文本文件中輸入My-name-is-YuLiWei。

echo My-name-is-YuLiWei > JM.txt

????????3. 使用以下命令進行所創建文本文件JM.txt內容信息的查看并輸出。

cat JM.txt

????????4. 使用以下命令通過利用對稱加密算法對JM.txt文本文件進行加密,并將最后的加密文件加密到JMW.txt文件中。

openssl enc -e -des -in JM.txt -out JMW.txt -pass pass:123456

????????5. 使用以下命令進行所創建文本文件JMW.txt內容信息的查看并輸出,所輸出的內容都是加密以后的內容,需要進行對應的解密才可以正常進行內容的查看。

cat JMW.txt

????????6. 使用以下命令通過利用對稱加密算法對JMW.txt文本文件進行解密,并將最后的解密文件保存到JMH.txt文件中。

openssl enc -d -des -in JMW.txt -out JMH.txt -pass pass:123456

7. 使用以下命令進行所創建文本文件JMH.txt內容信息的查看并輸出,所輸出的內容都是解密以后的內容,可以正常進行查看和閱讀。

cat JMH.txt

4.2 散列函數

????????1. 使用以下命令進行JM.txt文件內容散列值的獲取,并將獲取得到的散列值存放到MD5.txt文件中。

openssl md5 -out MD5.txt JM.txt

????????2. 使用以下命令進行所保存散列值文件MD5.txt內容信息的查看并輸出。

cat MD5.txt

????????3. 使用以下命令進行JM.txt文件內容SHA256散列值的獲取,并將獲取得到的散列值存放到SHA256.txt文件中。

openssl sha256 -out SHA256.txt JM.txt

????????4. 使用以下命令進行所保存SHA256散列值文件SHA256.txt內容信息的查看并輸出。

cat SHA256.txt

4.3 非對稱加密

????????1. 使用以下命令完成創建 2048 位的私鑰。

openssl genrsa -out private_key.pem 2048

????????2. 使用以下命令生成 2048 位的公鑰密碼體制 RSA 密鑰對。

openssl rsa -in private_key.pem -pubout -out public_key.pem

????????3. 使用以下命令利用創建的公鑰加密JM.txt文件內容到public.txt.encrypt文件中。

openssl rsautl -encrypt -in JM.txt -inkey public_key.pem -pubin -out public.txt.encrypt

4. 使用以下命令查看加密后public.txt.encrypt文件的內容。

cat public.txt.encrypt

5. 使用以下命令利用私鑰將public.txt.encrypt 文件內容解密至 public.txt.decrypt 文件中。

openssl rsautl -decrypt -in public.txt.encrypt -inkey private_key.pem -out public.txt.decrypt

6. 使用以下命令查看并輸出解密后的內容。

cat public.txt.decrypt

4.4 數字簽名

????????1. 使用以下命令對文件JM.txt進行數字簽名進而生成私鑰簽名并將對應的簽名文件保存為private.txt.signed。

openssl dgst -sha1 -sign private_key.pem -out private.txt.signed JM.txt

????????2. 使用以下命令查看簽名文件private.txt.signed的內容。

cat private.txt.signed

????????3. 使用以下命令對private.txt.signed簽名文件進行公鑰驗證簽名。

openssl dgst -sha1 -verify public_key.pem -signature private.txt.signed JM.txt

4.5 證書

????????1. 使用以下命令完成對根目錄的創建。

openssl genrsa -out rootCA.key 4096

????????2. 使用以下命令創建自簽名根證書rootCA.crt,并將需要填寫的信息填寫到對應的顯示輸入欄目之中。

openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 365 -out rootCA.crt

????????3. 使用以下命令創建證書rootCA.crt的秘鑰并將內容保存為Yho.com.key文件。

openssl genrsa -out Yho.com.key 4096

????????4. 使用以下命令完成對 certificate.conf 文件的配置。

vi certificate.conf

????????5. 通過上述命令進入到certificate.conf 文件中,進行相關文件內容的輸入與配置工作,確保對應配置文件內容的完整和正確。

????????6. 配置文件certificate.conf 配置完成后進行退出,先使用鍵盤的Esc進行頁面的退出,然后輸入以下命令進行命令行文件的退出。

:wq

????????7. 使用以下命令完成對應簽名的創建。

openssl req -new -key Yho.com.key -config certificate.conf -out Yhoo.com.csr

????????8. 使用以下命令完成對應證書的生成。

openssl x509 -req -in Yhoo.com.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out Yhoo.com.crt -days 365 -sha256 -extfile certificate.conf -extensions req_ext

????????9. 使用Xftp7遠程連接對應的阿里云平臺,使其在阿里云平臺生成的文件可視化的顯示到Xftp7的文件目錄下,方便我們及時觀測和文件內容的查看。


5、實驗小結

5.1 問題與解決辦法:

????????1. 問題一:無法從證書頒發機構(CA機構)獲取數字證書:

解決方法:確認證書頒發機構是否存在問題或訪問證書頒發機構的步驟是否正確,嘗試重新生成新的證書請求,或聯系證書頒發機構尋求幫助。

????????2. 問題二:安裝了數字證書后,應用程序無法正常訪問HTTPS資源:

解決方法:清除瀏覽器緩存和本地證書緩存后程序即可進行正常訪問。

????????3. 問題三:數字證書過期或被撤銷:

解決方法:如果證書過期或被撤銷,需要向CA機構請求新證書并重新申請數字簽名。

????????4. 問題四:顯示數字簽名驗證失敗:

解決方法:確認數字簽名證書是否已過期或被撤銷,或者是否存在其他安全問題。

????????5. 問題五:顯示私鑰丟失或損壞:

解決方法:如果大規模數據丟失,可以采取恢復數據的方法。

????????6. 問題六:顯示無法獲得數字簽名證書:

解決方法:如果證書頒發機構無法提供證書,可以使用其它機構的證書來解決此問題。

????????7. 問題七:對加密實現的代碼安全性不夠高:

解決方法:加強代碼審查和安全性測試,以防止攻擊者利用已知漏洞進行非法操作。

????????8. 問題八:顯示無法從阿里云平臺獲取數字證書。

解決方法:確認證書頒發機構是否存在問題或訪問阿里云平臺的步驟是否正確。

????????9. 問題九:顯示使用過程中需要證書驗證,但無法獲得證書。

解決方法:如果證書不再可用,可以向證書頒發機構請求新證書并重新申請。

????????10. 問題十:在移動設備中無法使用數字證書。

解決方法:需要在移動設備上進行特殊設置或安裝特殊的證書管理器來使用數字證書。

5.2 心得體會:

????????1、對稱加密:加密和解密使用相同的密鑰,如DES、AES等。

????????2、非對稱加密:加密和解密使用不同的密鑰,如RSA、ECC等。

????????3、散列函數:將任意長度的消息轉換成固定長度的散列值,如SHA-1、SHA-256等。

????????4、數字簽名:用私鑰對消息進行簽名,用公鑰驗證簽名的真實性。

????????5、數字證書:數字證書是由CA機構頒發的,用于驗證數字簽名的證書。

????????6、證書鏈:包括根證書和中間CA證書,用于驗證數字證書的可信度。

????????7、SSL/TLS協議:用于在網絡上提供安全的數據傳輸。

????????8、HTTPS協議:基于HTTP協議的安全傳輸協議,通過SSL/TLS來保證安全性。

????????9、安全套接層(SSL):在數據傳輸層上加密和解密數據。

????????10、傳輸層安全協議(TLS):由SSL協議演化而來,提供更加安全的傳輸協議。

????????11、PKCS:公鑰基礎設施標準,用于定義公鑰加密和數字簽名標準。

????????12、自簽名證書:由個人自己生成和使用的數字證書。

????????13、數字證書吊銷:風險證書在有效期內被撤銷,應當立即停止使用。

????????14、數字簽名算法:如RSA、DSA、ECC等,用于生成數字簽名。

????????15、數字簽名密鑰長度:影響數字簽名的安全性和效率。

????????16、加密密鑰長度:影響加密的安全性和效率。

????????17、數字簽名的應用:如電子合同、電子郵件、數字版權、電子證據等。

????????18、數字證書管理:包括數字證書的申請、簽發、吊銷和更新等。

????????19、密碼學:涉及加密、解密、散列等技術的研究。

????????20、在加密、數字簽名和證書領域,安全性與實用性是需要平衡的。需要根據實際應用場景和需求來選擇最合適的加密方法或數字證書。

????????21、 數字證書是數字簽名和信任的基石,但證書的可信度需要通過有效的認證機構來確保。

????????22、加密算法和簽名算法的安全性與密鑰長度有關,如果密鑰長度太小,可能會被攻擊者破解。因此,需要根據安全性要求選擇合適的密鑰長度。

????????23、在使用數字證書進行身份驗證時,要注意證書的有效期以及是否被吊銷。如果證書過期或已被吊銷,將無法確定證書的可信度。

????????24、數字簽名是保護數據完整性和真實性的重要手段,可以用于驗證數字內容是否被篡改或偽造。

????????25、加密和數字簽名的實現需要依賴密碼學算法,因此需要密鑰的保護和管理措施。

????????26、數字簽名的可復制性比較低,因此可以用于保護數字作品的版權和知識產權。

????????27、在使用HTTPS協議時,需要通過CA機構頒發的數字證書來驗證網站的真實性和可信度,保證數據傳輸的安全性。

????????28、數字簽名和證書的頒發需要具有雙方身份的認證,否則可能會引起詐騙和欺詐行為。

????????29、了解數字證書、數字簽名和加密技術的原理和應用,是當今互聯網世界不可或缺的技能,能夠提高個人和企業的安全防護能力。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/90503.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/90503.shtml
英文地址,請注明出處:http://en.pswp.cn/web/90503.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL(157)如何分析和優化存儲過程?

分析和優化存儲過程是數據庫性能優化的重要環節。通過對存儲過程進行分析和優化,可以提高數據庫操作的執行效率,減少資源消耗,改善系統整體性能。以下是詳細的步驟和代碼示例,介紹如何分析和優化 MySQL 存儲過程。 一、分析存儲過…

基于深度學習的胸部 X 光圖像肺炎分類系統(一)

本文先重點介紹了過采樣的原理是實現。 由于醫學數據相對缺乏,過采樣是解決數據問題的方法之一。 后續寫一篇搭建神經網絡的說明 目錄 概述 導入必要的庫 數據加載和預處理函數 處理樣本不均衡函數 構建改進的 CNN 模型函數 主函數 數據生成器generator&…

【PGCCC】在 Postgres 中構建復制安全的 LSM 樹

在原生 Postgres 實現中,全文搜索由B 樹或GIN(廣義倒排索引)結構支持。這些索引針對相對快速的查找進行了優化,但受限于 B 樹的寫入吞吐量。 當我們構建pg_searchPostgres 搜索和分析擴展時,我們的優先級有所不同。為了…

架構如鐘擺:在變與不變之間優雅平衡

在當今數字轉型浪潮中,企業在“快速創新”與“長期穩定”之間反復拉扯。是否應該重建所有架構以適應AI?又是否該死守傳統系統確保安全與合規?在The Open Group阿姆斯特丹峰會上,凱捷全球 CTO Ron Tolido 借用了一個極具畫面感的比…

LLM中的位置嵌入矩陣(Position Embedding Matrix)是什么

LLM中的位置嵌入矩陣(Position Embedding Matrix)是什么 在大語言模型(LLM)中,位置嵌入矩陣(Position Embedding Matrix) 是用來表示輸入序列中每個詞的位置信息的矩陣。它的核心作用是:讓模型能夠區分“相同詞在不同位置的語義差異”(比如“貓喜歡魚”中的“貓”和“…

國產DevOps平臺Gitee:如何重塑中國企業研發效能新格局

國產DevOps平臺Gitee:如何重塑中國企業研發效能新格局 在全球數字化轉型浪潮中,軟件研發效率已成為企業競爭力的核心指標。作為中國最大的代碼托管平臺,Gitee正通過其全棧式DevOps解決方案,助力中國企業突破研發效能瓶頸&#xff…

告別混亂!【Java Web】項目分層架構全指南:核心三層 + 關鍵輔助包詳解

目錄 1.前言 2.正文 2.1為什么要分層 2.2核心三層詳解 2.2.1Controller層(表現層/API層) 2.2.2Service層(業務邏輯層) 2.2.3DAO層(持久層) 2.3. 核心關系與數據流轉:分層架構的交互邏輯…

解決Docker Compose報錯

解決Docker Compose報錯:exec ./entrypoint.sh: no such file or directory在使用Docker Compose部署應用時,你是否遇到過exec ./entrypoint.sh: no such file or directory這個令人頭疼的錯誤?本文將深入分析錯誤原因并提供多種解決方案&…

【element plus】el-select,allow-create不需要點回車鍵

<el-selectv-model"row.expertName"filterableremoteallow-createdefault-first-optionreserve-keywordplaceholder"請輸入姓名":remote-method"remoteMethod":loading"loadingName"change"(val) > handleNameChange(row, …

RK3588 HDMI-RX 驅動、RGA 加速與 OpenCV GStreamer 支持完整指南

一、環境檢測與前置依賴 確認內核與 HDMI-RX 節點&#xff1a; uname -a # 輸出&#xff1a;6.1.0-1025-rockchip ...dmesg | grep -i hdmirx # 應能看到 hdmirx-controller 節點&#xff1a; # fdee0000.hdmirx-controller driver probe ok!如果僅出現&#xff1a; rockchi…

AS32A601芯片QSPI 調試技術解析與與實戰經驗分享

一、概述&#xff08;一&#xff09;QSPI 簡介QSPI&#xff08;Quad Serial Peripheral Interface&#xff09;是一種高速串行通信接口&#xff0c;在標準 SPI&#xff08;Serial Peripheral Interface&#xff09;的基礎上擴展至 4 條數據線&#xff08;Quad Mode&#xff09;…

TDengine 轉化函數 TO_TIMESTAMP 用戶手冊

TDengine TO_TIMESTAMP 函數用戶使用手冊 函數概述 TO_TIMESTAMP 是 TDengine 中的標量函數&#xff0c;用于將字符串按照指定格式轉換為時間戳。該函數在數據導入、時間格式轉換、以及處理各種時間字符串格式時非常有用。 語法 TO_TIMESTAMP(ts_str_literal, format_str_liter…

關于我司即將對商業間諜行為進行法律訴訟的通知

最后警告我司所屬社交媒體中所有友商間諜&#xff1a;請于2025年7月26日上午十點前&#xff0c;自行刪除我方好友&#xff0c;并停止通過欺詐行為&#xff08;包括但不限于冒充客戶等&#xff09;盜取我司商業秘密的行為。十點后&#xff0c;我司將開始進行逐一排查&#xff0c…

【打怪升級 - 03】YOLO11/YOLO12/YOLOv10/YOLOv8 完全指南:從理論到代碼實戰,新手入門必看教程

引言&#xff1a;為什么選擇 YOLO&#xff1f; 在目標檢測領域&#xff0c;YOLO&#xff08;You Only Look Once&#xff09;系列模型一直以其高效性和準確性備受關注。作為新版本&#xff0c;YOLO系列的新版本總能在前輩的基礎上進行了多項改進&#xff0c;包括更高的檢測精度…

JMeter每次壓測前清除全部以確保異常率準確(以黑馬點評為例、詳細圖解)

目錄 一、前言 二、未清除全部會出現的情況(以樂觀鎖解決超賣問題為例) 三、清除全部就能得到準確的結果 一、前言 在學習黑馬點評之前我并沒有接觸過JMeter這個壓測軟件&#xff0c;然后在黑馬點評視頻中老師也是直接拿起JMeter就開始使用&#xff0c;所以我一直在不斷搜索…

關于新學C++編程Visual Studio 2022開始,使用Cmake工具構建Opencv和SDK在VS里編譯項目開發簡介筆記

1. C 項目build文件夾 2. VS解決方案管理器Solution——.sln文件 3. CMake 自動化構建工具 4. SDK軟件開發工具包作為初學者&#xff0c;從工程項目開始接觸完整一套流程工具和編譯&#xff0c;有助于快速上手。 一、C 項目build文件夾在 VS2022 中打開 C 項目后&#xff0c;在…

測試ppyoloe的小樣本few-shot能力,10張圖片精度達到69.8%

近期公司有個項目&#xff0c;需要解決長尾樣本的問題&#xff0c;所以測試了一下paddlepaddle小樣本的能力。 環境&#xff1a;&#xff1a;T4 、ubuntu 、cuda-11.6 、py3.9、 paddlepaddle-gpu2.6.0、pip install opencv-python4.5.5.64 -i https://pypi.tuna.tsinghua.…

結構化布線系統詳解

1. 結構化布線系統概述 結構化布線系統(Structured Cabling System, SCS)是一種標準化、模塊化的建筑物或建筑群內信息傳輸基礎設施&#xff0c;它為語音、數據、圖像等多媒體業務提供了統一的物理傳輸介質。與傳統的點對點布線方式不同&#xff0c;結構化布線采用層次化、標準…

【Java學習】匿名內部類的向外訪問機制

目錄 一、方法局部變量的訪問 1.生命周期 1.1方法生命周期 1.2匿名實例生命周期 1.3生命超時性 2.變量捕獲 2.1按值捕獲 2.1.1值捕獲優勢 2.1.1.1生命及時訪問 2.1.1.2線程安全 2.1.2常量值捕獲優勢 2.2按引用捕獲 引用捕獲風險 (1)生命超時訪問 (2)線程不安全 …

LinkedList的模擬實現+LinkedList和ArrayList的區別

目錄 LinkedList的模擬實現 什么是雙向鏈表 增加數據 頭插法&#xff1a; 尾插法&#xff1a; 指定的下標插入&#xff1a; 刪除數據 刪除雙向鏈表中出現的第一個key 置空所有數據 LinkedList和ArrayList的區別 順序表對應的集合類是ArrayList&#xff1b;鏈表對應的集…