Java加密与解密的艺术(第2版)根据Java 7全面更新,不仅新增了很多重要的内容,而且对版中存在的瑕疵和不足进行了完善,使得本书内容更为详尽、更加与时俱进,能更好地满足广大Java企业级应用开发工程师和系统架构师的需求。
内容简介
本书是Java安全领域公认的标杆之作,被奉为每一位Java开发工程师必读的著作之一。由资深专家撰写,版4年来不衰,繁体版在台湾出版,大陆和台湾的读者都给予了极高的评价。第2版根据Java 7全面更新,不仅新增了很多重要的内容,而且对版中存在的瑕疵和不足进行了完善,使得本书内容更为详尽、更加与时俱进,能更好地满足广大Java企业级应用开发工程师和系统架构师的需求。
全书共12章,分为3个部分:基础篇(~4章)对Java企业级应用的安全知识、密码学核心知识、与Java加密相关的API和通过权限文件加强系统安全方面的知识进行了全面的介绍;实践篇(第5~9章)不仅对电子邮件传输算法、消息摘要算法、对称加密算法、非对称加密算法、数字算法等现今流行的加密算法的原理进行了全面而深入的剖析,还结合翔实的范例说明了各种算法的具体应用场景;综合应用篇(0~12章)既细致地讲解了加密技术对数字证书和SSL/TLS协议的应用,又以示例的方式讲解了加密与解密技术在网络中的实际应用,极具实践指导性。
Java开发者将通过本书掌握密码学和Java加密/解密技术的所有细节;系统架构师将通过本书领悟构建安全企业级应用的要义;其他领域的安全工作者也能通过本书一窥加密与解密技术的精髓。
作者简介
梁 栋 资深Java EE技术专家和Java EE企业级应用架构师。安全技术专家,对Java加密与解密技术有系统深入的研究。开源技术爱好者,有着丰富的Spring、Apache系列等开源框架的实践经验。Bouncy Castle扩展加密技术引入者,对其算法实现与应用有深入研究,并将其整理成册,供广大技术人员参考学习。擅长分布式、高并发系统的设计与架构,在分布式缓存、NoSQL、消息队列等方面有非常丰富的实践经验。
密码学在安全领域中的身影
安全领域离不开密码学的支持。例如,在OS1安全体系结构中通过数据加密确保数据的保密性,在TCPIP安全体系结构中以加密算法为基础构建SSL/TLS协议,这些都说明密码学与安全问题密不可分。
密码学在加密算法上大体可分为单向加密算法、对称加密算法、非对称加密算法三大类。
MD5,SHA算法是单向加密算法的代表,单向加密算法是数据完整性验证的常用算法。DES算法是典型的对称加密算法的代表,对称加密算法是数据存储加密的常用算法.RSA算法是典型的非对称加密算法的代表,非对称加密算法是数据传输加密的常用算法。对称加密算法也可以用做数据传输加密,但非对称加密算法在密钥管理方面更有优势。相对对称加密算法而言,非对称加密算法在安全级别上等级更高,但非对称加密算法在时间效率上远不如对称加密算法。以密码学为基础的各种安全实现相继出现,如HTTPS协议和一系列的“数字技术"(数字摘要、数字信封、数字签名、数字证书等),这些构成了认证技术的基础。
密码学为安全领域筑起了一道铜墙铁壁。
密码学定义、术语及其分类
历经四千多年的凤风雨雨,密码学逐步发展成为一门学科,对于它的定义也越来越清晰,那么什么是密码学呢?
密码学:主要是研究保密通信和信息保密的问题,包括信息保密传输和信息加密存储等.
密码学包含密码编码学(Cryptography)和密码分析学(Cryptanalyst)两个分支。编码学与分析学相互促进,又相互制约。一方面,两者在加强密码分析的安全上相互促进,另一方面,两者在实施更为有效的攻击方面也相互影响。
密码编码学:主要研究对信息进行编码,实现对信息的隐蔽,是密码学理论的基础,也是保密系统设计的基础。
密码分析学:主要研究加密消息的破译或消息的伪造,是检验密码体制安全性最为直接的手段,只有通过实际密码分析考验的密码体制,才是真正可用的。