欢迎光临本店     登录 注册   加入收藏
  •   
欢迎光临清华大学出版社第三事业部!

此页面上的内容需要较新版本的 Adobe Flash Player。

获取 Adobe Flash Player

当前位置: 首页 > 科技 > 计算机与网络 > Java安全性编程实例

浏览历史

Java安全性编程实例

Java安全性编程实例

prev next

  • 商品货号:01382005-8-27-1046
  • 商品重量:0克
    作者:徐迎晓 编著
    图书书号/ISBN:7-302-06420-2
    出版日期:2003-04-16
    印张:30.5
    字数:721千字
    开本:16
  • 上架时间:2005-10-05
    商品点击数:656
  • 定价:¥42.00元
    本店售价:¥30.50元
    注册用户:¥30.50元
    vip:¥28.98元
    黄金等级:¥27.45元
    用户评价: comment rank 5
  • 商品总价:
  • 购买数量:

内容简介:

商品附加资源

本书以大量的实例介绍了Java安全性编程方面的概念和技术,全书共计9章。 经过精心设计,每个小节的实例着重说明一个问题,又相互贯穿和联系。内容涉及Java加密和解密,反编译和反反编译,对类、成员变量、方法的攻击和保护,消息摘要,消息验证码,数字签名,口令保护,数字证书和证书链的生成、签发、检验和维护,SSL和HTTPS客户及服务器程序、基于代码位置和签发者的授权,签名Java Applet以及基于身份的验证和授权(JAAS)等。 全书的实例极为精简,只保留了能够说明问题的代码,而又可真正运行,便于Java入门者轻松掌握安全性方面繁杂的概念。适合于初步了解Java语法的学习者,也适合于作安全技术的入门学习及高校Java教学的参考书。
目 录
第1章 准备上手 1
1.1 J2SE的安装和设置 2
1.1.1 下载J2SE 2
1.1.2 安装J2SE 2
1.1.3 设置J2SE 3
1.1.4 J2SE的主要工具 4
1.2 反编译器的安装 6
1.2.1 JAD反编译工具 6
1.2.2 CAVAJ反编译工具 8
1.2.3 小颖Java源代码反编译工具 8
1.3 混淆器的安装 9
1.3.1 Marvin Obfuscator混淆器 9
1.3.2 JADE混淆器 10
第2章 数据内容的保护—— 加密和解密 13
2.1 一个简单的加密和解密程序—— 凯撒密码 14
2.2 对称密钥的生成和保存 16
2.2.1 对称密钥的生成及以对象 序列化方式保存 16
2.2.2 以字节保存对称密钥 18
2.3 使用对称密钥进行加密和解密 20
2.3.1 使用对称密钥进行加密 20
2.3.2 使用对称密钥进行解密 22
2.4 基于口令的加密和解密 25
2.4.1 基于口令的加密 25
2.4.2 基于口令的解密 28
2.5 针对流的加密和解密 30
2.5.1 针对输入流的加密和解密 30
2.5.2 针对输出流的加密和解密 33
2.6 加密方式的设定 35
2.6.1 使用CBC方式的加密 36
2.6.2 使用CBC方式的解密 38
2.7 生成非对称加密的公钥和私钥 40
2.8 使用RSA算法进行加密和解密 42
2.8.1 使用RSA公钥进行加密 42
2.8.2 使用RSA私钥进行解密 45
2.9 使用密钥协定创建共享密钥 48
2.9.1 创建DH公钥和私钥 48
2.9.2 创建共享密钥 51
2.10 小结 54
第3章 Java源代码和类、变量及 方法的保护 55
3.1 Java反编译及混淆器的使用 56
3.2 从网络资源加载节码文件 61
3.3 以任意方式加载字节码文件 65
3.4 加载加密的字节码文件 68
3.5 加载当前目录下的加密 字节码文件 71
3.6 Java类、成员变量和方法的保护 74
3.6.1 类的保护 74
3.6.2 成员变量和方法的保护 79
3.6.3 使用校验器 81
3.6.4 Reference类型私有成员 变量的保护 83
3.6.5 保护常量 86
3.7 小结 88
第4章 数据完整性和所有者的 确认——消息摘要和签名 89
4.1 使用消息摘要验证数据未被篡改 90
4.1.1 计算消息摘要 90
4.1.2 基于输入流的消息摘要 92
4.1.3 输入流中指定内容的 消息摘要 94
4.1.4 基于输入流的消息摘要 96
4.2 使用消息验证码 99
4.3 使用数字签名确定数据的来源 101
4.3.1 使用私钥进行数字签名 102
4.3.2 使用公钥验证数字签名 104
4.4 使用消息摘要保存口令 107
4.4.1 使用消息摘要保存口令 108
4.4.2 使用消息摘要验证口令 110
4.4.3 攻击消息摘要保存的口令 112
4.4.4 使用加盐技术防范 字典式攻击 115
4.4.5 验证加盐的口令 119
4.5 小结 122
第5章 数字化身份的确定—— 数字证书 123
5.1 数字证书的创建 124
5.1.1 使用默认的密钥库和算法 创建数字证书 124
5.1.2 使用别名 126
5.1.3 使用指定的算法和密钥库 和有效期 127
5.1.4 使用非交互模式 128
5.2 数字证书的显示 129
5.2.1 使用Keytool直接从密钥库 显示条目信息 129
5.2.2 使用Keytool直接从密钥库 显示证书详细信息 130
5.2.3 使用Keytool将数字证书 导出到文件 131
5.2.4 使用Keytool从文件中 显示证书 132
5.2.5 在Windows中从文件 显示证书 133
5.2.6 Java程序从证书文件 读取证书 134
5.2.7 Java程序从密钥库直接 读取证书 137
5.2.8 Java程序显示证书指定信息 (全名/公钥/签名等) 139
5.3 密钥库的维护 143
5.3.1 使用Keytool删除 指定条目 143
5.3.2 使用Keytool修改指定 条目的口令 144
5.3.3 Java程序列出密钥库 所有条目 144
5.3.4 Java程序修改密钥库口令 146
5.3.5 Java程序修改密钥库条目 的口令及添加条目 148
5.3.6 Java程序检验别名及 删除条目 150
5.4 数字证书的签发 152
5.4.1 确定CA的权威性—— 安装CA的证书 152
5.4.2 验证CA的权威性—— 显示CA的证书 155
5.4.3 Java程序签发数字证书 156
5.4.4 数字证书签名后的发布 163
5.5 数字证书的检验 164
5.5.1 Java程序验证数字证书 的有效期 164
5.5.2 使用Windows查看证书 路径验证证书的签名 167
5.5.3 从Windows中卸载证书 168
5.5.4 Java程序使用CA公钥验证 已签名的证书 170
5.6 小结 174
第6章 数字化身份——CertPath 证书链 175
6.1 密钥库中创建并保存证书链 的几种方法 176
6.1.1 使用Keytool将已签名的 数字证书导入密钥库 176
6.1.2 使用Java程序将已签名的 数字证书导入密钥库 179
6.2 几种获取CertPath证书链的方法 183
6.2.1 根据证书文件生成CertPath 类型的对象 183
6.2.2 从密钥库读取证书链生成 CertPath类型的对象 186
6.2.3 从HTTPS服务器获取 证书链 188
6.3 CertPath对象的证书显示和保存 196
6.3.1 显示CertPath中的证书 196
6.3.2 保存CertPath中的证书 198
6.4 验证CertPath证书链 201
6.4.1 验证主体和签发者 201
6.4.2 验证签名 204
6.4.3 CertPathValidator类基于 TrustAnchor验证证书链 207
6.4.4 CertPathValidator类基于 密钥库验证证书链 211
6.5 使用CertStore对象保存和 提取证书 215
6.5.1 创建CertStore对象 215
6.5.2 定义证书的选择标准 220
6.5.3 从CertStore中提取证书 224
6.6 证书的吊销 226
6.6.1 查看证书吊销清单 常规信息 226
6.6.2 查看清单中被吊销的证书 230
6.6.3 从CertStore对象中提取 已吊销的证书 233
6.7 小结 237
第7章 数据的安全传输和身份验证—— SSL和HTTPS编程 238
7.1 最简单的SSL通信 239
7.1.1 最简单的SSL服务器 239
7.1.2 最简单的SSL客户程序 241
7.1.3 进一步设置信任关系 244
7.1.4 设置默认信任密钥库 245
7.1.5 通过KeyStore对象选择 密钥库 248
7.2 扩展的SSL客户和服务器 程序的例子 251
7.2.1 设计通信规则 251
7.2.2 查看对方的证书等 连接信息 257
7.3 HTTPS客户及服务器程序 262
7.3.1 最简单的HTTPS 服务器程序 262
7.3.2 最简单的HTTPS 客户程序 269
7.3.3 基于Socket的HTTPS 客户程序 272
7.3.4 传输实际文件 274
7.4 基于证书的客户身份验证 279
7.4.1 最简单的验证客户身份的 HTTPS服务器程序 279
7.4.2 编写客户程序连结需客户 验证的HTTPS服务器 282
7.5 小结 283
第8章 程序运行的安全性—— 基于代码来源的授权 284
8.1 安全管理器的使用 285
8.1.1 使用默认的安全管理器 限制应用程序 285
8.1.2 编写自己的安全管理器 288
8.1.3 在程序中设置安全管理器 291
8.2 使用策略文件基于代码位置 进行授权 292
8.2.1 允许所有代码具有 所有权限 293
8.2.2 允许所有代码具有特定 的权限 296
8.2.3 允许所有代码具有多种 不同权限 298
8.2.4 针对指定目录中的代码 的授权 300
8.2.5 针对从网络下载的代码 的授权 304
8.3 使用策略文件基于代码的所有者 进行授权 309
8.3.1 编程者对代码进行签名 309
8.3.2 用户检验已签名的代码 310
8.3.3 针对签名者进行授权 313
8.4 定义特权代码 315
8.4.1 不同代码之间的调用 和授权 316
8.4.2 使用doPrivileged()方法 定义特权代码 321
8.4.3 使用匿名类定义特权代码 326
8.5 权限的操作及定义自己的权限 331
8.5.1 策略文件权限的检测 331
8.5.2 最简单的权限定义 336
8.5.3 使用签名的权限 340
8.6 Applet的安全运行 342
8.6.1 使用AppletViewer运行的 Java Applet 343
8.6.2 浏览器中使用Java Plug-in 运行Java Applet 346
8.6.3 浏览器基于策略文件运行 Java Applet 351
8.6.4 浏览器运行RSA签名的 Java Applet 353
8.6.5 Java Plug-in的证书管理 358
8.6.6 使用usePolicy权限加强RSA 签名Applet的安全控制 359
8.7 小结 361
第9章 程序运行的安全性——基于用户 身份的验证和授仅(JAAS) 362
9.1 最简单的身份验证 363
9.1.1 最简单的登录 363
9.1.2 更换登录模块修改 验证方式 366
9.1.3 更换回调处理器修改 登录界面 369
9.1.4 使用非交互式验证 371
9.2 编写自己的登录模块 374
9.2.1 简单的登录模块 374
9.2.2 完整的登录模块模板 383
9.2.3 使用模板编写自己的 密钥库登录模块 392
9.3 使用堆叠式登录 402
9.3.1 堆叠式登录及各个登录 模块的相互关系 402
9.3.2 堆叠登录模块之间的 信息共享 406
9.4 编写自己的回调处理器 424
9.4.1 最简单的回调处理器 424
9.4.2 图形界面口令输入的 安全性 430
9.4.3 文本界面口令输入的 安全性 433
9.4.4 更加安全的文本界面口令 输入方式 435
9.5 基于身份的授权 438
9.5.1 使用策略文件的基于 身份授权 438
9.5.2 使用编程方式的基于 身份授权 445
9.5.3 比较doAsPrivileged() 和doAs() 450
9.6 小结 456
附录A 申请数字标识(数字证书) 457
附录B 向CA申请证书签名 464
[图书资源]

商品标签

购买记录(近期成交数量0)

还没有人购买过此商品
总计 0 个记录,共 1 页。 第一页 上一页 下一页 最末页

用户评论(共0条评论)

  • 暂时还没有任何用户评论
总计 0 个记录,共 1 页。 第一页 上一页 下一页 最末页
用户名: 匿名用户
E-mail:
评价等级:
评论内容:
验证码: captcha