首页>参考读物>计算机科学与技术>软件与程序设计

Java加密与解密的艺术(第2版)
作者 : 梁栋 著
丛书名 : 华章原创精品
出版日期 : 2013-12-09
ISBN : 978-7-111-44678-1
定价 : 89.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 505
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书是Java安全领域公认的标杆之作,被奉为每一位Java开发工程师必读的著作之一。由资深专家撰写,第1版4年来畅销不衰,繁体版在台湾出版,大陆和台湾的读者都给予了极高的评价。第二版根据Java SE 7全面更新,不仅新增了很多重要的内容,而且对第一版中存在的瑕疵和不足进行了完善,使得本书内容更为详尽、更加与时具进,能更好地满足广大Java企业级应用开发工程师和系统架构师的需求。
全书共11章,分为三个部分:基础篇(1-4章)对Java企业级应用的安全知识、密码学核心知识、与Java加密相关的API和通过权限文件加强系统安全方面的知识进行了全面的介绍;实践篇(5-9章)不仅对电子邮件传输算法、消息摘要算法、对称加密算法、非对称加密算法、数字签名算法等现今流行的加密算法的原理进行了全面而深入的剖析,而且还结合翔实的范例说明了各种算法的具体应用场景;综合应用篇(9-11)既细致地讲解了加密技术对数字证书和SSL/TLS协议的应用,又以示例的方式讲解了加密与解密技术在网络中的实际应用,极具实践指导性。
Java开发者将通过本书掌握密码学和Java加密与解密技术的所有细节;系统架构师将通过本书领悟构建安全企业级应用的要义;其他领域的安全工作者也能通过本书一窥加密与解密技术的精髓。

图书特色

经典著作全新升级,第1版4年来畅销不衰,繁体版在台湾出版,大陆和台湾的读者都给予了极高的评价
Java安全领域公认的标杆之作,资深专家撰写,全面介绍Java 7中与安全相关的各种API和工具,深入剖析现今流行的各种加密算法及其应用,包含多个前沿的应用案例,实践性强

Java加密与解密的艺术
第2版
The Art of Encryption and Decryption About Java
Second Edition
梁栋 著

后:
我们对信息技术的依赖性越大,所面临的潜在安全威胁就会越多,自然就需要对安全问题更加重视。如今我们已经步入云计算时代和大数据时代,数据的存储、处理和使用都是基于网络的,而且每天都会有大量数据产生,我们所面临的安全隐患可能比以往任何时候都要多。Java技术在企业中的应用依然是最为广泛的,遍布各个行业和各个领域。如何确保应用的安全性是每一位Java开发工程师和系统架构师都应该考虑的问题。
本书以Java中的加密API和加密算法为切入点,全面介绍了Java SE 7的特性,及其中与安全相关的各种API,详细讲解了各种流行的加密算法及其在实际中的应用,为Java开发工程师和系统架构师们构建安全的Java企业级应用奠定了坚实的基础。
本书主要包含以下内容:
企业面临的安全隐患,以及密码学在安全领域的应用;
密码学的发展历史、定义、术语、分类,以及保密通信模型、对称密码体制、非对称密码体制、数字签名、公钥等;
Java与密码学,以及Java中的各种安全包和API;
系统安全配置、加密组件Bouncy Castle和辅助工具Commons Codec;
电子邮件传输算法Base64、消息摘要算法、对称加密算法、非对称加密算法、数字签名算法等;
数字证书的签发、管理和使用;
HTTPS和SSL/TLS安全协议,单向认证服务和双向认证服务;
常规Web应用安全、IM应用安全和WebService应用安全;
Java 7支持的算法,Bouncy Castle支持的算法;
………

前:
作者简介:
梁 栋 资深Java EE技术专家和Java EE企业级应用架构师。安全技术专家,对Java加密与解密技术有系统深入的研究。开源技术爱好者,有着丰富的Spring、Apache系列等开源框架的实践经验。国内Bouncy Castle扩展加密技术引入者,对其算法实现与应用有深入研究,并将其整理成册,供广大技术人员参考学习。擅长分布式、高并发系统的设计与架构,在分布式缓存、NoSQL、消息队列等方面有非常丰富的实践经验。

图书前言

为什么要写这本书
  当你在用IM与好友聊天时,当你通过B2C网站购物时,当你用邮件与客户交流时,当你公司的应用服务器与合作伙伴交换商业数据时……你是否考虑过你的数据是否安全?你的隐私是否会泄露?你的银行卡是否会被盗用?你的竞争对手是否能破解你的敏感数据?
  任何一项通过网络交互的数据都有可能是不安全的,而我们却越来越依赖于网络。用户密码、聊天消息、银行卡号、邮件信息、商业敏感数据,如果通过明文传输,后果不堪设想。自己的账号被盗用、隐私成为公共话题、信用卡被人滥用、竞争对手盗用自己的数据……于是,为了确保数据不被侵犯,数据加密与解密技术应运而生,成为众多应用中的一项核心技术。
  众所周知,Java EE是目前企业应用中使用最广泛的语言之一,几乎在任何一个领域都能看到Java EE的身影。随着加密与解密算法的发展,Java加密与解密技术不断演进,不断提高着数据的安全性,已成为各大企业应用中一项关键性的技术。
  很多企业应用领域的架构师都很关注加密与解密算法在应用中的使用,例如用户密码加密、网络协议加密等。如何在名目繁多的Java加密与解密技术中选择合适的算法进行企业级应用开发,如何解决Java加密与解密技术在开发过程中遇到的各种问题,成为许多开发者,尤其是架构师关注的焦点问题。然而,国内目前还没有哪一本书能解决这些问题。笔者因工作需要,采用Java加密与解密技术成功构建了企业级网银系统。在开发过程中,笔者感受到了Java加密与解密技术的精妙。笔者希望把自己Java加密与解密技术运用在企业应用开发领域的经验和心得分享给广大读者,以帮助大家掌握提升企业应用的安全性的方法。
本书面向的读者
  本书主要适合于以下读者:
  (1)所有利用Java进行企业级应用开发的软件工程师
  对于企业级应用软件工程师来讲,这将是一次系统的密码学之旅。本书将为您介绍密码学理论、Java相关算法实现、开源组件包、数字证书与安全协议等相关内容,并配有相关实例为您提供详尽实现指导,为您构建企业级安全应用提供完整的技术支持。
  (2)系统架构师
  对于系统架构师来讲,如何使用成熟技术快速构建安全企业应用是安全工作的第一要务。
  在算法方面,本书详述了Java 7对于密码学算法的相关实现,针对AES算法密钥长度受限问题给出解决办法。同时,针对当前Java 7不支持的算法,如SHA224、ElGamal和ECDSA等,本书详细介绍了如何使用第三方开源加密组件包Bouncy Castle进行相关算法实现补充,并且对Apache Commons Codec进行了详尽的介绍。这些成熟的组件包都是构建安全企业应用必不可少的工具包。在架构方面,本书浓墨重彩地介绍了数字证书的构建、SSL/TLS协议服务搭建,并通过相关实例介绍如何构建单向/双向认证服务。
  (3)其他安全领域的软件工程师
  如今企业级应用已经逐步转变为以服务为主的异构体应用,如Web Service应用等。Java加密算法实现遵循密码学相关国际标准,完全可以与其他计算机语言(如C++、C#等)构建的异构体应用进行数据加密交互。本书为读者选择合适算法及实现提供了详尽的技术支持。
如何阅读本书
  全书一共分为3个部分:基础篇、实践篇、综合应用篇。
  (1)基础篇
  本篇共包含4章,主要对Java企业级应用安全、密码学理论和Java中与加密相关的API进行了详细介绍,并详细阐述了第三方组件包Bouncy Castle及与Apache Commons Codec相关的API。
  第1章主要阐述了当前的安全问题,并给出了安全的相关标准。本书将在后续章节中通过各个算法介绍逐一实现这些标准,这些标准同样是评判系统安全级别的准则。
  第2章主要详述了密码学相关理论知识,并回顾密码学的发展历程。如果您不曾接触过密码学,本章将是您了解密码学理论的基础教程。本书后续章节会多处应用本章介绍的相关技术名词。
  第3章主要详述了Java 7安全领域相关API内容,为您详尽介绍每一个与密码学相关的类以及方法。本章将是每位安全领域软件工程师必读内容,您将在阅读本书的后续章节时经常翻阅本章内容。
  第4章主要介绍了如何通过权限文件加强系统安全级别,并详述了开源组件Bouncy Castle及与Apache Commons Codec相关API内容。如果您正苦于AES算法密钥长度受限,SHA224、ElGamal、ECDSA等算法缺少支持等问题,那么请您阅读本章;如果您非常希望找到Base64及十六进制编码算法的成熟开源组件,也请您阅读本章。本书将在后续章节中介绍如何使用这些开源组件并实现相关算法。
  (2)实践篇
  本篇主要对现今流行的所有加密算法进行了全面阐述和深入剖析,并配合相关测试用例演示算法实现。在阅读本篇前,请阅读第2章相关理论知识,并了解第3~4章相关API内容。本篇将是所有企业级应用Java软件工程师的必读内容。
  第5章介绍了极为简单的Base64算法,该算法可以作为加密算法入门算法。如果您仅需要确保应用交互的数据可以达到隐藏的目的,那么在第5章中您一定可以找到满意的答案。
  第6章主要详述了MD系列、SHA系列以及MAC系列三大消息摘要算法相关实现,并详细介绍了如何使用Bouncy Castle构建Java 7所不支持的算法实现。对于一般网络应用,经常需要为下载软件提供对应的摘要信息以校验文件完整性。相信在阅读完本章后,您便可熟练使用Apache Commons Codec为应用实现校验文件完整性的需求。
  第7章将沿着对称加密算法的发展历程,详述了DES、DESede、AES和PBE四大算法的实现细节,并详细介绍了如何使用Bouncy Castle构建目前较为常用的IDEA算法。这些算法适用于中小型企业级应用网络数据加密交互需求,同时也适用于其他安全领域相关需求,是应用最为广泛的加密算法,更是密码学领域的核心算法。如果您仅想通过对称加密算法及消息摘要算法构建简单的加密网络应用,那么本章提供的实例将非常适合您。
  第8章主要详述了构建于对称加密算法之上的非对称加密算法,包括DH、RSA和ElGamal三大常用算法。本章是本书后续内容的基础,数字签名算法、数字证书、安全协议等内容都与本章内容息息相关,请您在阅读后续章节前仔细阅读本章。如果您对单向/双向认证服务底层实现非常感兴趣,并想要知道它的来龙去脉,那么本章就是您探究该技术旅途上的第一个驿站。
  第9章详述了基于消息摘要算法和非对称加密算法之上的数字签名算法,包括RSA、DSA和ECDSA三大常用算法。数字签名算法是消息摘要算法的延续,是单向/双向认证服务核心认证技术。如果您想通过非对称加密算法构建简单的网络加密应用,并期望使用数字签名算法对数据进行校验,那么本章的实例将非常适合您。
  (3)综合应用篇
  本篇不仅细致地介绍了加密技术对数字证书和SSL/TLS协议的应用,还以示例的方式讲解了加密解密技术在实际网络中的各种应用,极具实践指导性。请您在阅读本章前仔细阅读实践篇相关内容。本篇内容将是系统架构师的最爱。
  第10章详细介绍了如何使用KeyTool和OpenSSL两大工具进行数字证书管理,并详细介绍了如何在Java中使用数字证书。数字证书是非对称加密算法公钥的载体,是SSL/TLS协议和单向/双向认证服务的基础。如果您想要构建安全的HTTPS网络服务应用,请先阅读本章。
  第11章主要介绍了SSL/TLS协议及单向/双向认证服务。这将是您探究单向/双向认证服务技术旅途上的最后一站。本章详述了如何通过简单配置Tomcat服务器快速构建单向/双向认证服务,内容翔实、极具实践性。
  第12章是本书的实例集合,通过三套网络应用实例揭示常规网络应用安全、即时通信网络应用安全和以数据交互为主的Web Service应用安全,并通过网络监测工具WireShark对其效果进行检测。通过不同算法的组合,三套实例逐步升级自身系统的安全级别,极具指导意义。您将在本章找到解决网络安全问题的可行性参考。
通过阅读本书,读者不仅能全面掌握Java加密与解密的各种基础知识,还能进一步了解Java加密与解密的高级技术和技巧,从而将这些知识都运用到实际开发中去。
新版变更说明
  对比上一版本,在新版中主要对JDK、Bouncy Castle等进行了版本更新,补充了新版本中特有的算法实现与实例,并对上一版中存在的疏漏进行了修正。新版内容基于Java 7,对比Java 6其在安全性上有所提升。新增了EC算法安全提供者,同时增加了用于EC密钥构建的API等。根据笔者的观察,种种现象预示着在Java SE后续版本中可能会进一步增强EC系列算法的相应实现,如ECDH算法等。同时,一些只能在Bouncy Castle中才能实现的算法,正被Java SE 7所蚕食,如SHA256withRSA算法等。在新版中引入了Bouncy Castle 1.49,扩展了对于OpenSSL的PEM文件操作实现等。同时,应读者需求,新版中补充了OpenSSL在Base64、消息摘要方面的操作运用。
读者约定
  本书内容主要基于Java 7,书中的代码实现请参考相关API。
  在本书中,我们用环境变量%JDK_HOME%来表示JDK的安装路径;用环境变量%JRE_HOME%来表示JRE的安装路径。如将JDK安装在C:\java\jdk目录下,变量%JDK_HOME%则指向该目录。相应的,如将JRE安装在C:\ java \jre目录下,变量%JRE_HOME%则指向该目录。
  本书代码演示所使用的IDE为Eclipse。
  阅读本书前,我们约定您已了解了以下内容:
  (1)测试组件包—JUnit
  本书将通过测试工具JUnit,以白盒测试的方式演示如何使用Java完成相应的加密与解密操作。
  本书将使用JUnit 4.5版本,以注解的方式构建白盒测试。读者可通过其官方网站(http://www.junit.org/)下载最新版本。
  (2)编码组件包—Commons Codec
  Commons Codec(http://commons.apache.org/codec/)是一款开源编码组件,它位于国际开源组织Apache(http://www.apache.org/)旗下。它对Java API做了进一步封装,用于Hex、Base64编码增强实现。本书中使用的版本为1.4。读者朋友可通过其官方网站下载最新版本。
  (3)加密组件包—Bouncy Castle
  Bouncy Castle(http://www.bouncycastle.org/)是一个开源加密组件。它提供了多种Java API所不支持的算法实现,如消息摘要算法MD4和SHA224、对称加密算法IDEA、数字签名算法ECDSA等。本书中使用的版本为1.49。
  (4)网络监听工具—WireShark
  本书将通过网络监听工具WireShark完成对网络数据的监控,请读者参考相关文档。读者可通过其官方网站(http://www.wireshark.org/)下载最新版本。
(5)密码&证书管理工具—OpenSSL
  OpenSSL(http://www.openssl.org/)是一个基于命令行密码&证书管理工具,可用于密钥的生成、加密/解密、签名/验证、数字证书管理等。

上架指导

计算机\程序设计

封底文字

当我们对信息技术的依赖程度越大,我们所面临的潜在安全威胁就会越多,我们就需要对安全问题更加重视。如今我们已经步入云计算时代和大数据时代,数据的存储、处理和使用都是基于网络的,而且每天都会有大量数据产生,我们所面临的安全隐患可能比以往任何时候都要多。Java技术在企业中的应用依然是最为广泛的,遍及各个行业和各个领域,如何确保应用的安全性是每一位Java开发工程师和系统架构师都应该考虑的问题。
本书以Java中的加密API和加密算法为切入点,全面介绍了Java SE 7中的各种与安全相关的API和特性,详细讲解了各种流行的加密算法及其在实际中的应用,为Java开发工程师和系统架构师们构建安全的Java企业级应用奠定了坚实的基础。
本书主要包含以下内容:
(1) 企业面临的安全隐患,以及密码学在安全领域的应用;
(2) 密码学的发展历史、定义、术语、分类,以及保密通信模型、对称密码体制、非对称密码体制、数字签名、公钥等;
(3) Java与密码学,以及Java中的各种安全包和API;
(4) 系统安全配置、加密组件Bouncy Castle和辅助工具Commons Codec;
(5) 电子邮件传输算法Base64、消息摘要算法、对称加密算法、非对称加密算法、数字签名算法等;
(6) 数字证书的签发、管理和使用;
(7) HTTPS和SSL/TLS安全协议,单向认证服务和双向认证服务;
(8) 常规Web应用安全、IM应用安全和WebService应用安全;
(9) Java 7支持的算法,Bouncy Castle支持的算法

作者简介

梁栋 著:暂无简介

图书目录

前 言
第一部分  基础篇
第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

教学资源推荐
作者: 主编 牛力 韩小汀 参编 闫石 杨凯 刘楠楠
作者: Y. Daniel Liang
作者: 钱晓捷 编著
参考读物推荐
作者: 许进 叶志远 钟尊发 蔡波斯 等著
作者: 王小川 编著