计算机
类型
可以朗读
语音朗读
347千字
字数
2021-06-01
发行日期
展开全部
主编推荐语
本书重点介绍了Java自带加解密函数的相关技术,以及密码学领域重要的开源库OpenSSL在Java开发中的应用。
内容简介
现在,Java开发可谓如日中天,并且Java安全开发是Java开发领域中的一个重要内容,每个Java开发人员都必须掌握。
本书共8章,主要内容包括密码学和Java概述、搭建Java密码开发环境、对称密码算法原理、利用JCA\JCE对称加解密、杂凑函数和HMAC、密码学中常见的编码格式、非对称算法RSA的加解密、数字签名技术等。
本书内容非常详细,学习坡度非常平滑,循序渐进,就算没有密码学基础,也能从零开始到全面掌握。
本书面向的读者是Java开发人员、企业内转行计算机信息安全的工作人员、已有信息安全基础并想了解Java加解密新特性的人员。本书也可作为高等院校和培训机构计算机及相关专业师生的教学参考书。
目录
- 版权信息
- 内容简介
- 前言
- 第1章 加解密和Java概述
- 1.1 密码学基础知识
- 1.1.1 密码学概述
- 1.1.2 对称密钥加密技术
- 1.1.3 公开密钥加密技术
- 1.1.4 单向散列函数算法
- 1.1.5 数字签名基础知识
- 1.2 身份认证基础知识
- 1.2.1 身份认证概述
- 1.2.2 身份认证的方式
- 1.3 Java语言概述
- 1.3.1 Java简介
- 1.3.2 Java主要特性
- 1.3.3 Java的发展史
- 第2章 搭建Java密码开发环境
- 2.1 搭建Java开发环境
- 2.1.1 下载JDK
- 2.1.2 安装JDK
- 2.1.3 配置JDK环境变量
- 2.1.4 在命令行下编译Java程序
- 2.1.5 在Eclipse中开发Java程序
- 2.1.6 下载Eclipse
- 2.1.7 启动Eclipse
- 2.1.8 第一个Eclipse下的Java工程
- 2.1.9 在工作区中打开工程
- 2.2 搭建Java Web开发环境
- 2.2.1 下载Tomcat
- 2.2.2 安装Tomcat
- 2.2.3 在Eclipse中配置Tomcat
- 2.2.4 第一个Eclipse下的JSP工程
- 2.2.5 第一个JavaBean工程
- 2.3 使用JNI
- 2.4 Java密码开发的两个主流国际库
- 2.5 准备密码库OpenSSL
- 2.5.1 OpenSSL源代码模块结构
- 2.5.2 OpenSSL加密库调用方式
- 2.5.3 OpenSSL支持的对称加密算法
- 2.5.4 OpenSSL支持的非对称加密算法
- 2.5.5 OpenSSL支持的信息摘要算法
- 2.5.6 OpenSSL密钥和证书管理
- 2.5.7 面向对象与OpenSSL
- 2.5.8 BIO接口
- 2.5.9 EVP接口
- 2.5.10 关于版本和操作系统
- 2.5.11 在Windows下编译OpenSSL1.1.1
- 2.5.12 在Windows下编译OpenSSL1.0.2m
- 2.5.13 测试使用OpenSSL命令
- 2.6 在Java下使用OpenSSL
- 2.6.1 以命令方式使用OpenSSL
- 2.6.2 以函数库方式调用OpenSSL
- 2.7 纯Java密码开发库
- 2.7.1 JCA的基本概念
- 2.7.2 JCA的设计原则
- 2.7.3 JCA中的密码服务提供者
- 2.7.4 JCA编程的两大安全包
- 2.7.5 包java.security中的接口和类
- 2.7.6 包javax.crypto中的接口和类
- 2.7.7 第一个JCA例子
- 第3章 对称密码算法原理
- 3.1 基本概念
- 3.2 对称加解密算法的分类
- 3.3 流加密算法
- 3.3.1 基本概念
- 3.3.2 流密码和分组密码的比较
- 3.3.3 RC4算法
- 3.4 分组加密算法
- 3.4.1 工作模式
- 3.4.2 短块加密
- 3.4.3 DES和3DES算法
- 3.4.4 SM4算法
- 第4章 利用JCA/JCE对称加解密
- 4.1 包java.security
- 4.1.1 密钥接口
- 4.1.2 安全随机数
- 4.2 包javax.crypto
- 4.2.1 安全密钥接口SecretKey
- 4.2.2 密钥生成类KeyGenerator
- 4.2.3 密钥规范类SecretKeySpec
- 4.2.4 初始向量类IvParameterSpec
- 4.2.5 加解密类Cipher
- 4.2.6 利用JCA实现DES加密
- 第5章 杂凑函数和HMAC
- 5.1 杂凑函数概述
- 5.1.1 什么是杂凑函数
- 5.1.2 密码学和杂凑函数概述
- 5.1.3 杂凑函数的发展
- 5.1.4 杂凑函数的设计
- 5.1.5 杂凑函数的分类
- 5.1.6 杂凑函数的碰撞
- 5.2 SM3杂凑算法
- 5.2.1 SM3算法概述
- 5.2.2 SM3算法的特点
- 5.2.3 常量和函数
- 5.2.4 填充
- 5.2.5 迭代压缩
- 5.2.6 杂凑值
- 5.2.7 一段式SM3算法的实现
- 5.2.8 三段式SM3杂凑的实现
- 5.2.9 Java和OpenSSL1.1.1b联合实现SM3算法
- 5.3 MD5消息摘要算法
- 5.3.1 MD5算法概述
- 5.3.2 MD5算法的特点
- 5.3.3 MD5是否属于加密算法
- 5.3.4 MD5用途
- 5.3.5 MD5算法原理
- 5.3.6 手工实现MD5算法
- 5.3.7 基于Java消息摘要类实现MD5算法
- 5.4 HMAC
- 5.4.1 什么是HMAC
- 5.4.2 HMAC产生的背景
- 5.4.3 HMAC在身份认证中的应用
- 5.4.4 设计目标
- 5.4.5 算法描述
- 5.4.6 手工实现HMAC-MD5
- 5.4.7 基于Java Mac类实现HMAC-MD5
- 5.4.8 实现HMAC-SM3
- 5.5 更通用的基于OpensSSL的哈希运算
- 5.6 SHA系列杂凑算法
- 5.6.1 SHA算法概述
- 5.6.2 SHA系列算法核心思想和特点
- 5.6.3 SHA256算法原理解析
- 5.6.4 SHA256算法核心思想
- 5.6.5 SHA256算法的实现
- 第6章 密码学中常见的编码格式
- 6.1 Base64编码
- 6.1.1 概述
- 6.1.2 Base64编码的由来
- 6.1.3 Base64的索引表
- 6.1.4 Base64的转化原理
- 6.1.5 使用OpenSSL的base64命令
- 6.1.6 Java编程实现Base64编解码
- 6.2 PEM文件
- 6.2.1 什么是PEM文件
- 6.2.2 生成一个PEM文件
- 6.3 ASN.1及其编解码
- 6.3.1 ASN.1的基本概念
- 6.3.2 ASN.1的编码格式
- 6.3.3 ASN的优点
- 6.3.4 基本语法规则
- 6.3.5 ASN.1数据类型
- 6.3.6 ASN.1实例
- 第7章 非对称算法RSA的加解密
- 7.1 非对称密码体制概述
- 7.2 RSA概述
- 7.3 RSA的数学基础
- 7.3.1 素数
- 7.3.2 素性检测
- 7.3.3 倍数
- 7.3.4 约数
- 7.3.5 互质数
- 7.3.6 质因数
- 7.3.7 强素数
- 7.3.8 因子
- 7.3.9 模运算
- 7.3.10 模运算的操作与性质
- 7.3.11 单向函数
- 7.3.12 费马定理和欧拉定理
- 7.3.13 幂与模幂运算
- 7.3.14 同余符号≡
- 7.3.15 欧拉函数
- 7.3.16 最大公约数
- 7.3.17 欧几里得算法
- 7.3.18 扩展欧几里得算法
- 7.4 RSA算法描述
- 7.5 RSA算法实例
- 7.5.1 查找法计算d
- 7.5.2 简便法计算私钥d
- 7.5.3 扩展欧几里得计算私钥d
- 7.5.4 加密字母
- 7.5.5 分组加密字符串
- 7.6 RSA加密长度限制问题
- 7.7 熟悉PKCS#1
- 7.7.1 PKCS#1填充
- 7.7.2 PKCS#1中的 RSA私钥语法
- 7.8 在OpenSSL命令中使用RSA
- 7.8.1 生成RSA公私钥
- 7.8.2 提取私钥参数
- 7.8.3 利用RSA公钥加密一个文件
- 7.8.4 利用私钥解密一个文件
- 7.9 基于OpenSSL库的Java RSA实现
- 7.9.1 OpenSSL的RSA实现
- 7.9.2 主要数据结构
- 7.9.3 主要函数
- 7.10 随机大素数的生成
- 7.11 Java中的大数表示
- 7.12 基于大素数的RSA算法Java实现
- 7.13 基于JCA的RSA算法实现
- 7.13.1 密钥对类KeyPair
- 7.13.2 密钥对生成类KeyPairGenerator
- 7.13.3 密钥工厂类KeyFactory
- 7.14 RSA算法的攻击及分析
- 7.14.1 因子分解攻击
- 7.14.2 选择密文攻击
- 7.14.3 公共模数攻击
- 7.14.4 小指数攻击
- 第8章 数字签名技术
- 8.1 概述
- 8.2 什么是数字签名技术
- 8.2.1 签名
- 8.2.2 数字签名基本概念
- 8.2.3 数字签名的原理
- 8.2.4 数字签名的一般性定义
- 8.2.5 数字签名的分类
- 8.2.6 数字签名的安全性
- 8.2.7 数字签名的特征与应用
- 8.3 RSA公钥算法在数字签名中的应用
- 8.4 利用OpenSSL命令进行签名验签
展开全部
出版方
清华大学出版社
清华大学出版社成立于1980年6月,是由教育部主管、清华大学主办的综合出版单位。植根于“清华”这座久负盛名的高等学府,秉承清华人“自强不息,厚德载物”的人文精神,清华大学出版社在短短二十多年的时间里,迅速成长起来。清华大学出版社始终坚持弘扬科技文化产业、服务科教兴国战略的出版方向,把出版高等学校教学用书和科技图书作为主要任务,并为促进学术交流、繁荣出版事业设立了多项出版基金,逐渐形成了以出版高水平的教材和学术专著为主的鲜明特色,在教育出版领域树立了强势品牌。