注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)密碼學(xué)原理與Java實(shí)現(xiàn)

密碼學(xué)原理與Java實(shí)現(xiàn)

密碼學(xué)原理與Java實(shí)現(xiàn)

定 價(jià):¥89.00

作 者: 朱文偉 李建英
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買這本書(shū)可以去


ISBN: 9787302580270 出版時(shí)間: 2021-06-01 包裝: 平裝-膠訂
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 358 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  現(xiàn)在,Java開(kāi)發(fā)可謂如日中天,并且Java安全開(kāi)發(fā)是Java開(kāi)發(fā)領(lǐng)域中的一個(gè)重要內(nèi)容,每個(gè)Java開(kāi)發(fā)人員都必須掌握。市面中的絕大多數(shù)密碼學(xué)書(shū)籍都是針對(duì)C或C 的,本書(shū)重點(diǎn)介紹Java自帶加解密函數(shù)的相關(guān)技術(shù),以及密碼學(xué)領(lǐng)域重要的開(kāi)源庫(kù)OpenSSL在Java開(kāi)發(fā)中的應(yīng)用。 本書(shū)共8章,主要內(nèi)容包括密碼學(xué)和Java概述、搭建Java密碼開(kāi)發(fā)環(huán)境、對(duì)稱密碼算法原理、利用JCAJCE對(duì)稱加解密、雜湊函數(shù)和HMAC、密碼學(xué)中常見(jiàn)的編碼格式、非對(duì)稱算法RSA的加解密、數(shù)字簽名技術(shù)等。本書(shū)內(nèi)容非常詳細(xì),學(xué)習(xí)坡度非常平滑,循序漸進(jìn),就算沒(méi)有密碼學(xué)基礎(chǔ),也能從零開(kāi)始到全面掌握。 本書(shū)面向的讀者是Java開(kāi)發(fā)人員、企業(yè)內(nèi)轉(zhuǎn)行計(jì)算機(jī)信息安全的工作人員、已有信息安全基礎(chǔ)并想了解Java加解密新特性的人員。本書(shū)也可作為高等院校和培訓(xùn)機(jī)構(gòu)計(jì)算機(jī)及相關(guān)專業(yè)師生的教學(xué)參考書(shū)。

作者簡(jiǎn)介

  朱文偉,名校計(jì)算機(jī)專業(yè)統(tǒng)招碩士,20年CC 、Java開(kāi)發(fā)經(jīng)驗(yàn)。主導(dǎo)開(kāi)發(fā)過(guò)密碼、圖形、人工智能等產(chǎn)品。精通Linux、Windows系統(tǒng)開(kāi)發(fā)及數(shù)據(jù)庫(kù)開(kāi)發(fā)技術(shù)。著有圖書(shū)《Windows C/C 加密解密實(shí)戰(zhàn)》《密碼學(xué)原理與Java實(shí)現(xiàn)》《Linux C與C 一線開(kāi)發(fā)實(shí)踐》《Visual C 2017從入門到精通》。

圖書(shū)目錄

第1章  加解密和Java概述 1
1.1  密碼學(xué)基礎(chǔ)知識(shí) 1
1.1.1  密碼學(xué)概述 1
1.1.2  對(duì)稱密鑰加密技術(shù) 2
1.1.3  公開(kāi)密鑰加密技術(shù) 2
1.1.4  單向散列函數(shù)算法 3
1.1.5  數(shù)字簽名基礎(chǔ)知識(shí) 3
1.2  身份認(rèn)證基礎(chǔ)知識(shí) 5
1.2.1  身份認(rèn)證概述 5
1.2.2  身份認(rèn)證的方式 5
1.3  Java語(yǔ)言概述 6
1.3.1  Java簡(jiǎn)介 6
1.3.2  Java主要特性 7
1.3.3  Java的發(fā)展史 8
第2章  搭建Java密碼開(kāi)發(fā)環(huán)境 10
2.1  搭建Java開(kāi)發(fā)環(huán)境 10
2.1.1  下載JDK 10
2.1.2  安裝JDK 11
2.1.3  配置JDK環(huán)境變量 12
2.1.4  在命令行下編譯Java程序 13
2.1.5  在Eclipse中開(kāi)發(fā)Java程序 14
2.1.6  下載Eclipse 14
2.1.7  啟動(dòng)Eclipse 14
2.1.8  個(gè)Eclipse下的Java工程 15
2.1.9  在工作區(qū)中打開(kāi)工程 18
2.2  搭建Java Web開(kāi)發(fā)環(huán)境 18
2.2.1  下載Tomcat 18
2.2.2  安裝Tomcat 19
2.2.3  在Eclipse中配置Tomcat 20
2.2.4  個(gè)Eclipse下的JSP工程 21
2.2.5  個(gè)JavaBean工程 25
2.3  使用JNI 30
2.4  Java密碼開(kāi)發(fā)的兩個(gè)主流國(guó)際庫(kù) 35
2.5  準(zhǔn)備密碼庫(kù)OpenSSL 36
2.5.1  OpenSSL源代碼模塊結(jié)構(gòu) 36
2.5.2  OpenSSL加密庫(kù)調(diào)用方式 37
2.5.3  OpenSSL支持的對(duì)稱加密算法 38
2.5.4  OpenSSL支持的非對(duì)稱加密算法 38
2.5.5  OpenSSL支持的信息摘要算法 38
2.5.6  OpenSSL密鑰和證書(shū)管理 38
2.5.7  面向?qū)ο笈cOpenSSL 39
2.5.8  BIO接口 40
2.5.9  EVP接口 41
2.5.10  關(guān)于版本和操作系統(tǒng) 42
2.5.11  在Windows下編譯OpenSSL1.1.1 42
2.5.12  在Windows下編譯OpenSSL1.0.2m 54
2.5.13  測(cè)試使用OpenSSL命令 62
2.6  在Java下使用OpenSSL 64
2.6.1  以命令方式使用OpenSSL 64
2.6.2  以函數(shù)庫(kù)方式調(diào)用OpenSSL 67
2.7  純Java密碼開(kāi)發(fā)庫(kù) 72
2.7.1  JCA的基本概念 73
2.7.2  JCA的設(shè)計(jì)原則 74
2.7.3  JCA中的密碼服務(wù)提供者 74
2.7.4  JCA編程的兩大安全包 76
2.7.5  包java.security中的接口和類 77
2.7.6  包javax.crypto中的接口和類 83
2.7.7  個(gè)JCA例子 84
第3章  對(duì)稱密碼算法原理 89
3.1  基本概念 89
3.2  對(duì)稱加解密算法的分類 90
3.3  流加密算法 90
3.3.1  基本概念 90
3.3.2  流密碼和分組密碼的比較 91
3.3.3  RC4算法 91
3.4  分組加密算法 95
3.4.1  工作模式 95
3.4.2  短塊加密 99
3.4.3  DES和3DES算法 100
3.4.4  SM4算法 118
第4章  利用JCA/JCE對(duì)稱加解密 139
4.1  包java.security 140
4.1.1  密鑰接口 140
4.1.2  安全隨機(jī)數(shù) 141
4.2  包javax.crypto 150
4.2.1  安全密鑰接口SecretKey 151
4.2.2  密鑰生成類KeyGenerator 151
4.2.3  密鑰規(guī)范類SecretKeySpec 155
4.2.4  初始向量類IvParameterSpec 156
4.2.5  加解密類Cipher 157
4.2.6  利用JCA實(shí)現(xiàn)DES加密 160
第5章  雜湊函數(shù)和HMAC 181
5.1  雜湊函數(shù)概述 181
5.1.1  什么是雜湊函數(shù) 181
5.1.2  密碼學(xué)和雜湊函數(shù)概述 182
5.1.3  雜湊函數(shù)的發(fā)展 182
5.1.4  雜湊函數(shù)的設(shè)計(jì) 183
5.1.5  雜湊函數(shù)的分類 183
5.1.6  雜湊函數(shù)的碰撞 183
5.2  SM3雜湊算法 184
5.2.1  SM3算法概述 184
5.2.2  SM3算法的特點(diǎn) 184
5.2.3  常量和函數(shù) 184
5.2.4  填充 185
5.2.5  迭代壓縮 185
5.2.6  雜湊值 186
5.2.7  一段式SM3算法的實(shí)現(xiàn) 187
5.2.8  三段式SM3雜湊的實(shí)現(xiàn) 194
5.2.9  Java和OpenSSL1.1.1b聯(lián)合實(shí)現(xiàn)SM3算法 198
5.3  MD5消息摘要算法 201
5.3.1  MD5算法概述 202
5.3.2  MD5算法的特點(diǎn) 202
5.3.3  MD5是否屬于加密算法 202
5.3.4  MD5用途 202
5.3.5  MD5算法原理 203
5.3.6  手工實(shí)現(xiàn)MD5算法 204
5.3.7  基于Java消息摘要類實(shí)現(xiàn)MD5算法 211
5.4  HMAC 213
5.4.1  什么是HMAC 213
5.4.2  HMAC產(chǎn)生的背景 214
5.4.3  HMAC在身份認(rèn)證中的應(yīng)用 214
5.4.4  設(shè)計(jì)目標(biāo) 215
5.4.5  算法描述 215
5.4.6  手工實(shí)現(xiàn)HMAC-MD5 216
5.4.7  基于Java Mac類實(shí)現(xiàn)HMAC-MD5 219
5.4.8  實(shí)現(xiàn)HMAC-SM3 222
5.5  更通用的基于OpensSSL的哈希運(yùn)算 226
5.6  SHA系列雜湊算法 232
5.6.1  SHA算法概述 232
5.6.2  SHA系列算法核心思想和特點(diǎn) 233
5.6.3  SHA256算法原理解析 233
5.6.4  SHA256算法核心思想 235
5.6.5  SHA256算法的實(shí)現(xiàn) 240
第6章  密碼學(xué)中常見(jiàn)的編碼格式 249
6.1  Base64編碼 249
6.1.1  概述 249
6.1.2  Base64編碼的由來(lái) 249
6.1.3  Base64的索引表 249
6.1.4  Base64的轉(zhuǎn)化原理 250
6.1.5  使用OpenSSL的base64命令 252
6.1.6  Java編程實(shí)現(xiàn)Base64編解碼 253
6.2  PEM文件 258
6.2.1  什么是PEM文件 258
6.2.2  生成一個(gè)PEM文件 260
6.3  ASN.1及其編解碼 261
6.3.1  ASN.1的基本概念 261
6.3.2  ASN.1的編碼格式 262
6.3.3  ASN的優(yōu)點(diǎn) 262
6.3.4  基本語(yǔ)法規(guī)則 263
6.3.5  ASN.1數(shù)據(jù)類型 263
6.3.6  ASN.1實(shí)例 266
第7章  非對(duì)稱算法RSA的加解密 274
7.1  非對(duì)稱密碼體制概述 274
7.2  RSA概述 276
7.3  RSA的數(shù)學(xué)基礎(chǔ) 276
7.3.1  素?cái)?shù) 276
7.3.2  素性檢測(cè) 276
7.3.3  倍數(shù) 277
7.3.4  約數(shù) 277
7.3.5  互質(zhì)數(shù) 277
7.3.6  質(zhì)因數(shù) 277
7.3.7  強(qiáng)素?cái)?shù) 277
7.3.8  因子 278
7.3.9  模運(yùn)算 278
7.3.10  模運(yùn)算的操作與性質(zhì) 279
7.3.11  單向函數(shù) 279
7.3.12  費(fèi)馬定理和歐拉定理 280
7.3.13  冪與模冪運(yùn)算 280
7.3.14  同余符號(hào)≡ 280
7.3.15  歐拉函數(shù) 281
7.3.16  公約數(shù) 281
7.3.17  歐幾里得算法 282
7.3.18  擴(kuò)展歐幾里得算法 284
7.4  RSA算法描述 292
7.5  RSA算法實(shí)例 293
7.5.1  查找法計(jì)算d 293
7.5.2  簡(jiǎn)便法計(jì)算私鑰d 295
7.5.3  擴(kuò)展歐幾里得計(jì)算私鑰d 297
7.5.4  加密字母 298
7.5.5  分組加密字符串 298
7.6  RSA加密長(zhǎng)度限制問(wèn)題 302
7.7  熟悉PKCS#1 303
7.7.1  PKCS#1填充 304
7.7.2  PKCS#1中的 RSA私鑰語(yǔ)法 308
7.8  在OpenSSL命令中使用RSA 309
7.8.1  生成RSA公私鑰 309
7.8.2  提取私鑰參數(shù) 311
7.8.3  利用RSA公鑰加密一個(gè)文件 312
7.8.4  利用私鑰解密一個(gè)文件 313
7.9  基于OpenSSL庫(kù)的Java RSA實(shí)現(xiàn) 314
7.9.1  OpenSSL的RSA實(shí)現(xiàn) 314
7.9.2  主要數(shù)據(jù)結(jié)構(gòu) 315
7.9.3  主要函數(shù) 316
7.10  隨機(jī)大素?cái)?shù)的生成 332
7.11  Java中的大數(shù)表示 333
7.12  基于大素?cái)?shù)的RSA算法Java實(shí)現(xiàn) 334
7.13  基于JCA的RSA算法實(shí)現(xiàn) 339
7.13.1  密鑰對(duì)類KeyPair 340
7.13.2  密鑰對(duì)生成類KeyPairGenerator 340
7.13.3  密鑰工廠類KeyFactory 342
7.14  RSA算法的攻擊及分析 348
7.14.1  因子分解攻擊 348
7.14.2  選擇密文攻擊 348
7.14.3  公共模數(shù)攻擊 348
7.14.4  小指數(shù)攻擊 349
第8章  數(shù)字簽名技術(shù) 350
8.1  概述 350
8.2  什么是數(shù)字簽名技術(shù) 351
8.2.1  簽名 351
8.2.2  數(shù)字簽名基本概念 352
8.2.3  數(shù)字簽名的原理 352
8.2.4  數(shù)字簽名的一般性定義 353
8.2.5  數(shù)字簽名的分類 354
8.2.6  數(shù)字簽名的安全性 355
8.2.7  數(shù)字簽名的特征與應(yīng)用 356
8.3  RSA 公鑰算法在數(shù)字簽名中的應(yīng)用 356
8.4  利用OpenSSL命令進(jìn)行簽名驗(yàn)簽 357

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)