Java加密與解密的藝術(第2版)

Java加密與解密的藝術(第2版)
定價:534
NT $ 465
  • 作者:梁棟
  • 出版社:機械工業出版社
  • 出版日期:2014-01-01
  • 語言:簡體中文
  • ISBN10:711144678X
  • ISBN13:9787111446781
  • 裝訂:493頁 / 普通級 / 2-1
 

內容簡介

是Java安全領域公認的標桿之作,被奉為每一位Java開發工程師必讀的著作之一。由資深專家撰寫,第1版4年來暢銷不衰,繁體版在台灣出版,大陸和台灣的讀者都給予了極高的評價。第2版根據Java 7全面更新,不僅新增了很多重要的內容,而且對第1版中存在的瑕疵和不足進行了完善,使得本書內容更為詳盡、更加與時俱進,能更好地滿足廣大Java企業級應用開發工程師和系統架構師的需求。

《Java加密與解密的藝術(第2版)》共12章,分為3個部分:基礎篇(第1-4章)對Java企業級應用的安全知識、密碼學核心知識、與Java加密相關的API和通過權限文件加強系統安全方面的知識進行了全面的介紹;實踐篇(第5-9章)不僅對電子郵件傳輸算法、消息摘要算法、對稱加密算法、非對稱加密算法、數字簽名算法等現今流行的加密算法的原理進行了全面而深入的剖析,還結合翔實的范例說明了各種算法的具體應用場景;綜合應用篇(第10-12章)既細致地講解了加密技術對數字證書和SSL/TLS協議的應用,又以示例的方式講解了加密與解密技術在網絡中的實際應用,極具實踐指導性。

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

梁棟,資深Java EE技術專家和Java EE企業級應用架構師。
 

目錄

前 言

第一部分 基礎篇
第1章 企業應用安全 2
1.1 我們身邊的安全問題 2
1.2 拿什麼來拯救你,我的應用 3
1.2.1 安全技術目標 3
1.2.2 OSI安全體系結構 4
1.2.3 TCP/IP安全體系結構 6
1.3 捍衛企業應用安全的銀彈 8
1.3.1 密碼學在安全領域中的身影 8
1.3.2 密碼學與Java EE 8
1.4 為你的企業應用上把鎖 9
1.5 小結 10
第2章 企業應用安全的銀彈—密碼學 11
2.1 密碼學的發家史 11
2.1.1 手工加密階段 11
2.1.2 機械加密階段 12
2.1.3 計算機加密階段 13
2.2 密碼學定義、術語及其分類 15
2.2.1 密碼學常用術語 15
2.2.2 密碼學分類 16
2.3 保密通信模型 17
2.4 古典密碼 18
2.5 對稱密碼體制 19
2.5.1 流密碼 20
2.5.2 分組密碼 21
2.6 非對稱密碼體制 27
2.7 散列函數 28
2.8 數字簽名 29
2.9 公鑰基礎設施 31
2.9.1 PKI的標准 31
2.9.2 PKI系統的組成 32
2.9.3 數字證書 33
2.10 PGP、OpenPGP與GPG 34
2.11 密碼學的未來 34
2.11.1 密碼算法的破解 35
2.11.2 密碼學的明天 36
2.12 小結 36
第3章 Java加密利器 38
3.1 Java與密碼學 38
3.1.1 Java安全領域組成部分 38
3.1.2 安全提供者體系結構 39
3.1.3 關於出口的限制 40
3.1.4 關於本章內容 40
3.2 java.security包詳解 40
3.2.1 Provider類 41
3.2.2 Security類 44
3.2.3 MessageDigest類 46
3.2.4 DigestInputStream類 49
3.2.5 DigestOutputStream類 49
3.2.6 Key接口 52
3.2.7 AlgorithmParameters類 53
3.2.8 AlgorithmParameter-
Generator類 55
3.2.9 KeyPair類 56
3.2.10 KeyPairGenerator類 57
3.2.11 KeyFactory類 59
3.2.12 SecureRandom類 61
3.2.13 Signature類 62
3.2.14 SignedObject類 65
3.2.15 Timestamp類 66
3.2.16 CodeSigner類 67
3.2.17 KeyStore類 69
3.3 javax.crypto包詳解 73
3.3.1 Mac類 73
3.3.2 KeyGenerator類 75
3.3.3 KeyAgreement類 77
3.3.4 SecretKeyFactory類 78
3.3.5 Cipher類 80
3.3.6 CipherInputStream類 84
3.3.7 CipherOutputStream類 83
3.3.8 SealedObject類 86
3.4 java.security.spec包和javax.crypto.spec包詳解 88
3.4.1 KeySpec和Algorithm-ParameterSpec接口 88
3.4.2 EncodedKeySpec類 89
3.4.3 SecretKeySpec類 92
3.4.4 DESKeySpec類 93
3.5 java.security.cert包詳解 94
3.5.1 Certificate類 94
3.5.2 CertificateFactory類 95
3.5.3 X509Certificate類 97
3.5.4 CRL類 98
3.5.5 X509CRLEntry類 99
3.5.6 X509CRL類 100
3.5.7 CertPath類 102
3.6 javax.net.ssl包詳解 103
3.6.1 KeyManagerFactory類 103
3.6.2 TrustManagerFactory類 105
3.6.3 SSLContext類 106
3.6.4 HttpsURLConnection類 109
3.6.5 SSLSession接口 111
3.6.6 SSLSocketFactory類 111
3.6.7 SSLSocket類 112
3.6.8 SSLServerSocketFactory類 114
3.6.9 SSLServerSocket類 114
3.7 小結 117
第4章 他山之石,可以攻玉 119
4.1 加固你的系統 119
4.1.1 獲得權限文件 120
4.1.2 配置權限文件 120
4.1.3 驗證配置 121
4.2 加密組件Bouncy Castle 121
4.2.1 獲得加密組件 122
4.2.2 擴充算法支持 122
4.2.3 相關API 126
4.3 輔助工具Commons Codec 130
4.3.1 獲得輔助工具 130
4.3.2 相關API 131
4.4 小結 141

第二部分 實踐篇
第5章 電子郵件傳輸算法—Base64 144
5.1 Base64算法的由來 144
5.2 Base64算法的定義 144
5.3 Base64算法與加密算法的關系 145
5.4 實現原理 146
5.4.1 ASCII碼字符編碼 146
5.4.2 非ASCII碼字符編碼 147
5.5 模型分析 147
5.6 Base64算法實現 148
5.6.1 Bouncy Castle 148
5.6.2 Commons Codec 150
5.6.3 兩種實現方式的差異 154
5.6.4 不得不說的問題 154
5.7 Url Base64算法實現 157
5.7.1 Bouncy Castle 157
5.7.2 Commons Codec 159
5.7.3 兩種實現方式的差異 160
5.8 應用舉例 161
5.8.1 電子郵件傳輸 161
5.8.2 網絡數據傳輸 161
5.8.3 密鑰存儲 162
5.8.4 數字證書存儲 162
5.8.5 OpenSSL操作Base 64編碼 163
5.9 小結 163
第6章 驗證數據完整性—消息摘要算法 165
6.1 消息摘要算法簡述 165
6.1.1 消息摘要算法的由來 165
6.1.2 消息摘要算法的家譜 166
6.2 MD算法家族 167
6.2.1 簡述 167
6.2.2 模型分析 168
6.2.3 實現 170
6.3 SHA算法家族 177
6.3.1 簡述 177
6.3.2 模型分析 178
6.3.3 實現 179
6.4 MAC算法家族 191
6.4.1 簡述 191
6.4.2 模型分析 192
6.4.3 實現 192
6.5 其他消息摘要算法 205
6.5.1 簡述 205
6.5.2 實現 205
6.6 循環冗余校驗算法—CRC算法 216
6.6.1 簡述 216
6.6.2 模型分析 217
6.6.3 實現 217
6.7 實例:文件校驗 219
6.8 小結 222
第7章 初等數據加密—對稱加密算法 224
7.1 對稱加密算法簡述 224
7.1.1 對稱加密算法的由來 224
7.1.2 對稱加密算法的家譜 225
7.2 數據加密標准—DES 225
7.2.1 簡述 225
7.2.2 模型分析 226
7.2.3 實現 227
7.3 三重DES—DESede 233
7.3.1 簡述 233
7.3.2 實現 233
7.4 高級數據加密標准—AES 238
7.4.1 簡述 238
7.4.2 實現 239
7.5 國際數據加密標准—IDEA 243
7.5.1 簡述 243
7.5.2 實現 243
7.6 基於口令加密—PBE 247
7.6.1 簡述 247
7.6.2 模型分析 247
7.6.3 實現 248
7.7 實例:對稱加密網絡應用 253
7.8 小結 265
第8章 高等數據加密—非對稱加密算法 267
8.1 非對稱加密算法簡述 267
8.1.1 非對稱加密算法的由來 267
8.1.2 非對稱加密算法的家譜 268
8.2 密鑰交換算法—DH&ECDH 269
8.2.1 簡述 269
8.2.2 模型分析 269
8.2.3 DH實現 270
8.2.4 ECDH實現 280
8.3 典型非對稱加密算法—RSA 289
8.3.1 簡述 289
8.3.2 模型分析 290
8.3.3 實現 291
8.4 常用非對稱加密算法—ElGamal 298
8.4.1 簡述 298
8.4.2 模型分析 298
8.4.3 實現 299
8.5 實例:非對稱加密網絡應用 305
8.6 小結 317
第9章 帶密鑰的消息摘要算法—數字簽名算法 319
9.1 數字簽名算法簡述 319
9.1.1 數字簽名算法的由來 319
9.1.2 數字簽名算法的家譜 320
9.2 模型分析 320
9.3 經典數字簽名算法—RSA 321
9.3.1 簡述 322
9.3.2 實現 322
9.4 數字簽名標准算法—DSA 328
9.4.1 簡述 328
9.4.2 實現 328
9.5 橢圓曲線數字簽名算法—ECDSA 333
9.5.1 簡述 333
9.5.2 實現 333
9.6 實例:帶有數字簽名的加密網絡應用 341
9.7 小結 352

第三部分 綜合應用篇
第10章 終極武器—數字證書 356
10.1 數字證書詳解 356
10.2 模型分析 359
10.2.1 證書簽發 359
10.2.2 加密交互 360
10.3 證書管理 361
10.3.1 KeyTool證書管理 361
10.3.2 OpenSSL證書管理 368
10.4 證書文件操作 379
10.4.1 JKS文件操作 379
10.4.2 PFX文件操作 388
10.4.3 PEM文件操作 390
10.5 應用舉例 394
10.6 小結 394
第11章 終極裝備—安全協議 396
11.1 安全協議簡述 396
11.1.1 HTTPS協議 396
11.1.2 SSL/TLS協議 397
11.2 模型分析 398
11.2.1 協商算法 399
11.2.2 驗證證書 399
11.2.3 產生密鑰 400
11.2.4 加密交互 402
11.3 單向認證服務 403
11.3.1 准備工作 403
11.3.2 服務驗證 408
11.3.3 代碼驗證 410
11.4 雙向認證服務 415
11.4.1 准備工作 415
11.4.2 服務驗證 418
11.4.3 代碼驗證 420
11.5 應用舉例 421
11.6 實例 422
11.6.1 SSLSocket獲取數字證書 422
11.6.2 SSLSocket加密交互 425
11.7 小結 429
第12章 量體裁衣—為應用選擇合適的裝備 431
12.1 實例:常規Web應用開發安全 431
12.1.1 常規Web應用基本實現 431
12.1.2 安全升級1—摘要處理 436
12.1.3 安全升級2—加鹽處理 438
12.2 實例:IM應用開發安全 441
12.2.1 IM應用開發基本實現 441
12.2.2 安全升級1—隱藏數據 454
12.2.3 安全升級2—加密數據 457
12.3 實例:Web Service應用開發安全 462
12.3.1 Web Service應用基本實現 462
12.3.2 安全升級1—單向認證服務 469
12.3.3 安全升級2—雙向認證服務 480
12.4 小結 485

附錄A Java 7支持的算法 487
附錄B Bouncy Castle支持的算法 490
網路書店 類別 折扣 價格
  1. 新書
    87
    $465