本文將詳細介紹如何在Java端、C++端和NodeJs端實現基於SSL/TLS的加密通信,重點分析Java端利用SocketChannel和SSLEngine從握手到數據發送/接收的完整過程。本文也涵蓋了在Ubuntu系統上利用OpenSSL和Libevent如何創建一個支持SSL的服務端。文章 ...
繼上一篇介紹如何在多種語言之間使用SSL加密通信,今天我們關注Java端的證書創建以及支持SSL的NioSocket服務端開發。完整源碼 一 創建keystore文件 網上大多數是通過jdk命令創建秘鑰文件,但是有時候我們需要將配套的秘鑰以及證書讓多個模塊來使用,他們很可能是由不同語言開發。在這樣的情形下,我們通常會選擇openssl。 生成服務端的秘鑰文件 openssl genrsa out ...
2020-02-14 11:47 0 635 推薦指數:
本文將詳細介紹如何在Java端、C++端和NodeJs端實現基於SSL/TLS的加密通信,重點分析Java端利用SocketChannel和SSLEngine從握手到數據發送/接收的完整過程。本文也涵蓋了在Ubuntu系統上利用OpenSSL和Libevent如何創建一個支持SSL的服務端。文章 ...
本文的第一部分將介紹protobuf使用基礎以及如何利用protobuf設計通信協議。第二部分會給出smss項目的協議設計規范和源碼講解。 一.Protobuf使用基礎 什么是protobuf protobuf是谷歌研發的一種數據序列化和存儲技術。主要可以用來解決網絡通訊中異構系統的通訊和數 ...
項目介紹 SMSS是一個由我個人發起的開源項目,目的是建立一套輕量化,高可用,高安全和方便擴展的業務支撐框架。SMSS面向TCP/IP層開發,適合擴展上層業務接口。數據結構傳輸序列化通過Protobuf實現。傳輸過程中的數據經過OpenSSL加密再由接收端進行解密,文件傳輸也需要 ...
libevent是一套輕量級的網絡庫,基於事件驅動開發。能夠實現多線程的多路復用和注冊事件響應。本文將介紹libevent的基本功能以及如何利用libevent開發一個線程池。 一. 使用指南 監聽服務和注冊連接事件 libevent是一個基於事件驅動的網絡庫,通過在一個事件循環上注冊 ...
背景: SSL(Secure Socket Layer 安全套接層)是一個加密函數庫,它可以將應用層上所有明文傳輸的數據,通過調用SSL庫,即可搖身一變成為安全通信連接,SSL最初是由網景公司(Netscape)研發,目前現有版本為SSLv1,SSLv2,SSLv3,但v1,v2已經淘汰 ...
本文轉載自SSL/TLS協議詳解(下)——TLS握手協議 導語 在博客系列的第2部分中,對證書頒發機構進行了深入的討論.在這篇文章中,將會探索整個SSL/TLS握手過程,在此之前,先簡述下最后這塊內容的關鍵要點: TLS適用於對稱密鑰 對稱密鑰可以通過安全 ...
本文翻譯自:https://www.wst.space/ssl-part-4-tls-handshake-protocol/ 在博客系列的第2部分中,對證書頒發機構進行了深入的討論.在這篇文章中,將會探索整個SSL/TLS握手過程,在此之前,先簡述下最后這塊內容的關鍵要點 ...
本文同時發表在https://github.com/zhangyachen/zhangyachen.github.io/issues/31 復習基本概念 對稱密碼:加密和解密使用同一密匙。 公鑰密碼:加密和解密使用不同密鑰的方式。 單向散列函數:計算散列值,保證的不是機密性 ...