java加密与解密的艺术.pdf_Java加密与解密的艺术

Java加密与解密的艺术(第2版)根据Java 7全面更新,不仅新增了很多重要的内容,而且对版中存在的瑕疵和不足进行了完善,使得本书内容更为详尽、更加与时俱进,能更好地满足广大Java企业级应用开发工程师和系统架构师的需求。

be69ab96295436934800c7fa9d500d02.png

内容简介

本书是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)两个分支。编码学与分析学相互促进,又相互制约。一方面,两者在加强密码分析的安全上相互促进,另一方面,两者在实施更为有效的攻击方面也相互影响。

密码编码学:主要研究对信息进行编码,实现对信息的隐蔽,是密码学理论的基础,也是保密系统设计的基础。

密码分析学:主要研究加密消息的破译或消息的伪造,是检验密码体制安全性最为直接的手段,只有通过实际密码分析考验的密码体制,才是真正可用的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 提供了许多加密解密 PDF 文档的库。其中一些库是: 1. Apache PDFBox:它是一个开源库,可以用来创建、修改和提取 PDF 文档。它还提供了加密解密 PDF 文档的功能。 2. iText:它是一个广泛使用的 PDF 库,可以用来创建、修改和提取 PDF 文档。它还提供了加密解密 PDF 文档的功能。 以下是使用 Apache PDFBox 加密解密 PDF 文档的示例代码: 1. 加密 PDF 文档: ``` import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.encryption.AccessPermission; import org.apache.pdfbox.pdmodel.encryption.StandardProtectionPolicy; import java.io.File; import java.io.IOException; public class PDFEncryptor { public static void main(String[] args) throws IOException { // 加载 PDF 文档 PDDocument document = PDDocument.load(new File("example.pdf")); // 设置访问权限 AccessPermission ap = new AccessPermission(); ap.setCanPrint(false); // 设置加密策略 StandardProtectionPolicy spp = new StandardProtectionPolicy("password", "ownerpassword", ap); spp.setEncryptionKeyLength(128); // 应用加密策略 document.protect(spp); // 保存加密后的 PDF 文档 document.save("example-encrypted.pdf"); document.close(); } } ``` 2. 解密 PDF 文档: ``` import org.apache.pdfbox.pdmodel.PDDocument; import java.io.File; import java.io.IOException; public class PDFDecryptor { public static void main(String[] args) throws IOException { // 加载加密PDF 文档 PDDocument document = PDDocument.load(new File("example-encrypted.pdf"), "password"); // 解密 PDF 文档 document.setAllSecurityToBeRemoved(true); // 保存解密后的 PDF 文档 document.save("example-decrypted.pdf"); document.close(); } } ``` 这些示例代码使用 Apache PDFBox 库加密解密 PDF 文档。您可以根据需要使用其他库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值