标题：Java加密与解密的艺术
图书信息
书 名: Java加密与解密的艺术  
作　者：梁栋
出版社： 机械工业出版社
出版时间： 2010-4-1
ISBN: 9787111297628
开本： 16开
定价: 69.00元
内容简介
本书是Java安全领域的百科全书，密码学领域的权威经典，5大社区一致鼎力推荐。 
在如今这个信息化时代，数据时一切应用的核心和基础，有数据存在的地方就会有安全隐患，而密码学则是解决大多数安全问题的银弹。 
Java作为全球最受欢迎的编程语言，它的应用遍及企业级应用的各个领域，安全是所有企业级应用中最突出、最重要的问题。然而这些问题从来都不是一种武器就能解决的。消息摘要算法用于数据校验、对称加密算法用于数据加密、非对称加密算法用于密钥交换、数字签名算法用于身份验证，等到。若要构建安全坚固的Java企业级应用，不仅要深入了解每种算法的原理并将它们综合运用，而且还要悟透Java加密与解密技术的本质。全书包含3个部分，基础篇对Java企业级应用的安全知识、密码学核心知识、与Java加密相关的API和通过权限文件加强系统安全方面的知识进行了全面的介绍；实践篇不仅对电子邮件传输算法、消息摘要算法、对称加密算法、非对称加密算法、数字签名算法等现今流行的加密算法的原理进行了全面而深入的剖析，而且还结合翔实的范例说明了各种算法的具体应用场景；综合应用篇既细致地讲解了加密技术对数字证书和SSL/TLS协议的应用，又以示例的方式讲解了加密与解密技术在网络中的实际应用，极具实践指导性。
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支持的算法