Java加密與解密的藝術

Java加密與解密的藝術

《Java加密與解密的藝術》是2010年機械工業出版社出版的圖書,作者是梁棟。本書講解了加密技術對數字證書和SSL/TLS協定的套用,又以示例的方式講解了加密與解密技術在網路中的實際套用。

基本信息

內容簡介

本書是Java安全領域的百科全書,密碼學領域的權威經典,5大社區一致鼎力推薦。

在如今這個信息化時代,數據是一切套用的核心和基礎,有數據存在的地方就會有安全隱患,而密碼學則是解決大多數安全問題的銀彈。

若要構建安全堅固的Java企業級套用,不僅要深入了解每種算法的原理並將它們綜合運用,而且還要悟透Java加密與解密技術的本質。全書包含3個部分,基礎篇對Java企業級套用的安全知識、密碼學核心知識、與Java加密相關的API和通過許可權檔案加強系統安全方面的知識進行了全面的介紹;實踐篇不僅對電子郵件傳輸算法、訊息摘要算法、對稱加密算法、非對稱加密算法、數字簽名算法等現今流行的加密算法的原理進行了全面而深入的剖析,而且還結合翔實的範例說明了各種算法的具體套用場景。

Java開發者將通過本書掌握密碼學和Java加密與解密技術的所有細節;系統架構師將通過本書領悟構建安全企業級套用的要義;其他領域的安全工作者也能通過本書一窺加密與解密技術的精髓。

《Java加密與解密的藝術》,它的套用遍及企業級套用的各個領域,安全是所有企業級套用中最突出、最重要的問題。然而這些問題從來都不是一種武器就能解決的。訊息摘要算法用於數據校驗、對稱加密算法用於數據加密、非對稱加密算法用於密鑰交換、數字簽名算法用於身份驗證等。

創作背景

眾所周知,JavaEE是目前企業套用中使用最廣泛的技術之一,幾乎在任何一個領域都能看到JavaEE的身影。隨著加密與解密算法的發展,Java加密與解密技術不斷演進,不斷提高著數據的安全性,已成為大企業套用中一項關鍵性的技術。

很多企業套用領域的架構師都很關注加密與解密算法在套用中的使用,譬如用戶密碼加密、網路協定加密等。如何在名目繁多的Java加密與解密技術中選擇合適的算法進行企業級套用開發,如何解決Java加密與解密技術開發過程中遇到的各種問題,這成為了許多開發者,尤其是架構師關注的焦點問題。然而,國內目前還沒有一本書能解決這些問題。本書的作者因工作需要,採用Java加密與解密技術成功構建了企業級套用網銀系統。在開發過程中,作者感受到了Java加密與解密技術的精妙。作者希望把Java加密與解密技術在企業及套用開發領域的經驗和心得分享給廣大讀者,提升企業套用的安全性。

作者簡介

梁棟,資深Java開發者,有豐富的Spring、Hibernate、iBatis等Java技術的使用和開發經驗,擅長Java企業級套用開發;安全技術專家,對Java加密與解密技術有系統深入的研究,實踐經驗亦非常豐富。他還是一位出色的項目經理,是V8Booker(手機電子書)項目的核心開發團隊人員之一,負責核心模組的開發;同時他還在V8NetBank(網銀系統)項目中擔任項目經理,負責系統的架構和核心模組的開發。

圖書目錄

第一部分 基礎篇

第1章 企業套用安全

1.1 我們身邊的安全問題

1.2 拿什麼拯救你,我的套用

1.2.1 安全技術目標

1.2.2 OSI安全體系結構

1.2.3 TCP/IP安全體系結構

1.3 捍衛企業套用安全的銀彈

1.3.1 密碼學在安全領域中的身影

1.3. 2 密碼與JavaEE

1.4 為你的企業套用上把鎖

1.5 小結

第2章 企業套用安全的銀彈—密碼學

2.1 密碼學得發家史

2.1.1 手工加密階段

2.1.2 機械加密階段

2.1.3 計算機加密階段

2.2密碼學定義、術語及其分類

2.2.1密碼學常用術語

2.2.1密碼學分類

2.3 保密通信模型

2.4 古典密碼

2.5 對稱密碼體制

2.5.1 流密碼

2.5.2 分組密碼

2.6 非對稱密碼體制

2.7 散列函式

2.8 數字簽名

2.9 密碼學的未來

2.9.1密碼算法的破解

2.9.2 密碼學的明天

2.10 小結

第3章 Java加密利器

3.1 Java與密碼學

3.1.1 Java安全領域組成部分

3.1.2 關於出口的限制

3.1.3 本書所使用的軟體

3.1.4 關於本章內容

3.2 java.security包詳解

3.2.1 Provider

3.2.2 Security

3.2.3 MessageDigest

3.2.4 DigestInputStream

3.2.5 DigestOutputStream

3.2.6 key

3.2.7 AlgorithmParameters

3.2.8 AlgorithmParameter-Generator

3.2.9 KeyPair

3.2.10 KeyPairGenerator

3.2.11 KeyFactory

3.2.12 SecureRandom

3.2.13 Signature

3.2.14 SignedObject

3.2.15 Timestamp

3.2.16 CodeSigner

3.2.17 KeyStore

3.3 javax.crypto包詳解

3.3.1 Mac

3.3.2 KeyGenerator

3.3.3KeyAgreement

3.3.4 SecretKeyFactory

3.3.5 Clipher

3.3.6 ClipherInputStream

3.3.7 ClipheroutStream

3.3.8 SealedObject

3.4 java.security.spec包和javax.crypto.spec包詳解

3.4.1 KeySpec和Algorithm-ParameterSpec

3.4.2 EncodeKeySpec

3.4.3 SecreKeySpec

3.4.4 DESKeySpec

3.5 java/security.cert包詳解

3.5.1 Certificate

3.5.2 CertificateFactory

3.5.3 X509Certificate

3.5.4 CRL

3.5.5 X509CRLEntry

3.5.6 X509CRL

3.5.7 CertPath

3.6 javax.net.ssl包詳解

3.6.1 KeyManagerFactory

3.6.2 TrustManagerFactory

3.6.3 SSLContext

3.6.4 HttpsURLConnection

3.7 小結

第4章 他山之石,可以攻玉

4.1 加固你的系統

4.1.1 獲得許可權檔案

4.1.2 配置許可權檔案

4.1.3 驗證配置

4.2 加密組件BouncyCastle

4.2.1 獲得加密組件

4.2.2 擴充算法支持

4.2.3 相關API

4.3 輔助工具CommonsCodec

4.3.1 獲得輔助工具

4.3.2 相關API

4.4 小結

第二部分 實踐篇

第5章 電子郵件傳輸算法——Base64

5.1 Base64算法的由來

5.2 Base64算法的定義

5.3 Base64算法與加密算法的關係

5.4 實現原理

5.4.1 ASCII碼字元編碼

5.4.2 非ASCII碼字元編碼

5.5 模型分析

5.6 Base算法實現

5.6.1 Bounty Castle

5.6.2 Commons Codec

5.6.3 兩種實現方式的差異

5.6.4 不得不說的問題

5.7 Url Base64 算法實現

5.7.1 Bounty Castle

5.7.2 Commons Codec

5.6.3 兩種實現方式的差異

5.8 套用舉例

5.8.1 電子郵件傳輸

5.8.2 網路數據傳輸

5.8.3 密鑰存儲

5.8.4 數字證書存儲

5.9 小結

第6章 驗證數據完整性——訊息摘要算法

6.1 訊息摘要算法簡述

6.1.1 訊息摘要算法的由來

6.1.2 訊息摘要算法的家譜

6.2 MD算法家族

6.2.1 簡述

6.2.2 模型分析

6.2.3 實現

6.3 SHA算法家族

6.3.1 簡述

6.3.2 模型分析

6.3.3 實現

6.4 MAC算法家族

6.4.1簡述

6.4.2模型分析

6.4.3 實現

6.5 其它訊息摘要算法

6.5.1 簡述

6.5.2實現

6.6循環冗餘校驗算法——CRC算法

6.61 簡述

6.62 模型分析

6.63 實現

6.7 實例:檔案校驗

6.8 小結

第7章 初等數據加密——對稱加密算法

7.1 對稱加密算法簡述

7.1.1 對稱加密算法的由來

7.1.2 對稱加密算法的家譜

7.2 數據加密的標準——DES

7.2.1 簡述

7.2.2 模型分析

7.2.3 實現

7.3 三重DES——DESede

7.3.1 簡述

7.3.2 實現

7.4 高級數據加密標準——AES

7.4.1 簡述

7.4.2 實現

7.5 國際數據加密——AES

7.5簡述

7.5.2 實現

7.6 基於口令加密——PBE

7.6.1 簡述

7.6.2 模型分析

7.6.3 實現

7.7 實例:對稱加密網路套用

7.8 小結

第8章 高等數據加密——非對稱加密算法

8.1 非對稱加密算法簡述

8.1.1 非對稱加密算法的由來

8.1.2 非對稱加密算法的家譜

8.2 密鑰交換算法——DH

8.2.1 簡述

8.2.2 模型分析

8.2.3 實現

8.3 典型非對稱加密算法——RSA

8.3.1 簡述

8.3.2 模型分析

8.3.3 實現

8.4 常用非對稱加密算法——ELGamal

8.4.1 簡述

8.4.2 模型分析

8.4.3 實現

8.5 實例:非對稱加密網路套用

8.6 小結

第9章 帶著密鑰的訊息摘要算法——數字簽名算法

9.1 數字簽名算法簡述

9.1.1 數字簽名算法的由來

9.1.2 數字簽名算法的家譜

9.2 模型分析

9.3 經典簽名標準算法——RSA

9.3.1 簡述

9.3.2 實現

9.4 數字簽名標準算法——DSA

9.4.1 簡述

9.4.2 實現

9.5 橢圓曲線數字簽名算法——ECDSA

9.5.1 簡述

9.5.2 實現

9.6 實例:帶有數字簽名的加密

網路套用

9.7 小結

第三部分 綜合套用篇

第10章 終極武器—數字證書

10.1數字證書詳解

10.2 模型分析

10.2.1 證書籤發

10.2.2 加密互動

10.3 證書管理

10.3.1 KeyTool證書管理

10.3.2 OpenSSl證書管理

10.4 證書使用

10.5 套用舉例

10.6小結

第11章 終極裝備—安全協定

11.1 安全協定簡述

11.1.1 HTTPS協定

11.1.2 SSL/TLS協定

11.2 模型分析

11.2.1 協商算法

11.2.2 驗證密鑰

11.2.3 產生密鑰

11.2.4 加密互動

11.3 單向認證服務

11.3.1 準備工作

11.3.2 服務驗證

11.3.3 代碼驗證

11.4 雙向認證服務

11.4.1 準備工作

11.4.2 服務驗證

11.4.3 代碼驗證

11.5 套用舉例

11.6 小結

第12章 量體裁衣—為套用選擇合適的裝備

12.1 實例:常規Web套用開發安全

12.1.1 常規Web套用基本實現

12.1.2 安全升級1——摘要處理

12.1.3 安全升級2——加鹽處理

12.2 實例:IM套用開發安全

12.2.1 IM套用開發基本實現

12.2.2 安全升級1——隱藏數據

12.2.3 安全升級2——加密數據

12.3 實例:Web Service套用開發安全

12.3.1 Web Service套用幾本實現

12.3.2 安全升級1——單向認證服務

12.3.3 安全升級2——雙向認證服務

12.4小結

附錄A Java6支持的算法

附錄B Bouncy Castle支持的算法

相關詞條

相關搜尋

熱門詞條

聯絡我們