第1章 安全性考虑 1
安全哲学 1
实现安全 4
Java安全 7
为什么需要安全性——哈姆雷特的例子 8
小结 9
第2章 安全的Java代码 10
可访问性 10
序列化 15
对包的保护 17
特权代码 18
本地方法 19
小结 19
第3章 密码和Java中的加密服务概述 20
加密 20
认证 31
Java密码架构和Java密码扩展 37
小结 47
第4章 对称加密 48
加密和解密 48
应用 49
基于口令的加密(PBE) 55
密钥存储 62
填充 63
模式 64
CipherStreams类 65
封装的对象(Sealed Objects) 74
小结 75
第5章 非对称加密和密钥协定 76
非对称加密 76
会话密钥加密 78
支持RSA的FileEncryptor 81
密钥协定 92
小结 102
第6章 消息摘要、数字签名和证书 103
消息摘要 103
数字签名 114
数字证书 132
小结 153
第7章 核心Java安全模块和Applet安全 154
密码签名管理 154
权限 157
Applets 176
小结 200
Servlets 201
第8章 Java中其他安全模块 201
Enterprise JavaBean 207
JAAS 212
小结 227
第9章 SSL 228
SSL基础知识 228
在Java中使用SSL 232
高级SSL主题 252
SSL的局限性 272
小结 272
第10章 保护数据库 273
保护JDBC驱动程序的传输 274
保护数据库中的数据 306
示例应用程序——加密信用卡 306
小结 325
第11章 保护大型应用程序 326
示例应用程序——在线银行 326
设置密钥 331
数据库 335
中间件——Bank 339
Web服务器 358
信用卡客户端 375
可能的修正 381
小结 382
第12章 实现自己的提供者程序 383
提供者程序的必要条件 383
JCE是如何工作的 384
RSA算法 385
Java中的RSA 388
实现RSA加密 388
RSA签名 426
局限和进一步的实现 444
小结 444
保护电子邮件 446
附录A 附加的技术 446
时间戳 448
安全日志记录 458
使用现实数据(nonce) 458
小结 459
附录B MySQL数据库和JDBC驱动程序 460
安装 460
启动MySQL 460
附录C BASE64编码 464
附录D EncryptedObject 473