# 路径：Java SE 中的安全功能

> 原文： [https://docs.oracle.com/javase/tutorial/security/index.html](https://docs.oracle.com/javase/tutorial/security/index.html)

在这篇文章中，您将了解内置的 Java™安全功能如何保护您免受恶意程序的侵害。您将了解如何使用工具来控制对资源的访问，生成和检查数字签名，以及创建和管理签名生成和检查所需的密钥。您还将了解如何将加密服务（例如数字签名生成和检查）合并到您的程序中。

Java Development Kit（JDK™）提供的安全功能适用于各种受众：

*   **运行程序的用户**：

    内置的安全功能可以保护您免受恶意程序（包括病毒）的侵害，维护您的文件隐私和有关您的信息，并验证每个代码提供程序的身份。您可以在需要时对应用程序和小程序进行安全控制。

*   **开发人员**：

    您可以使用 API​​方法将安全功能合并到您的程序中，包括加密服务和安全检查。 API 框架使您能够定义和集成自己的权限（控制对特定资源的访问），加密服务实现，安全管理器实现和策略实现。此外，还提供了一些类，用于管理您信任的人的公钥/私钥对和公钥证书。

*   **系统管理员，开发人员和用户**：

    JDK 工具管理您的密钥库（密钥和证书数据库）;为 JAR 文件生成数字签名，并验证此类签名的真实性以及签名内容的完整性;并创建和修改定义安装的安全策略的策略文件。

* * *

**Note:** For developers that want to create applets and Java Web Start applications, see [Java Applets](../deployment/applet/index.html) for security information.

* * *

## 小道教训

![Trail icon](img/0689397fa9cc4e369d63fc92b3bb6f38.jpg) [创建策略文件](./tour1/index.html)显示如何通过策略文件控制资源访问。有关策略配置文件的最新信息，请参阅[策略指南](https://docs.oracle.com/javase/8/docs/technotes/guides/security/PolicyGuide.html)页面。

![Trail icon](img/0689397fa9cc4e369d63fc92b3bb6f38.jpg) [控制应用程序快速浏览](./tour2/index.html)以上一课为基础，展示了如何在安全管理器下运行的应用程序不允许读取或写入文件等资源访问，除非明确允许策略文件中的权限。

![Trail icon](img/0689397fa9cc4e369d63fc92b3bb6f38.jpg) [用于安全代码和文件交换的 API 和工具](./sigcert/index.html)定义了数字签名，证书和密钥库，并讨论了为什么需要它们。它还审查了适用于接下来三个课程的信息，这些信息涉及使用工具或 API 生成签名，导出/导入证书等所需的常用步骤。

![Trail icon](img/0689397fa9cc4e369d63fc92b3bb6f38.jpg) [签名代码和授予权限](./toolsign/index.html)说明了所有与安全相关的工具的使用。它显示了开发人员签署和分发代码以供其他人运行的步骤。本课程还说明了运行代码的人（或系统管理员）如何在策略文件中添加条目以授予其所需资源访问的代码权限。

![Trail icon](img/0689397fa9cc4e369d63fc92b3bb6f38.jpg) [交换文件](./toolfilex/index.html)显示一个人使用这些工具签署重要文件，例如合同，并导出公钥的公钥证书，该公钥对应于用于签署的私钥。合同。然后，该课程将显示收到合同，签名和公钥证书的其他人如何导入证书并验证签名。

![Trail icon](img/0689397fa9cc4e369d63fc92b3bb6f38.jpg) [生成和验证签名](./apisign/index.html)引导您逐步完成使用 JDK Security API 编写 Java 程序以生成密钥，使用私钥生成数据的数字签名以及导出的示例公钥和文件签名。然后，该示例显示编写第二个程序，该程序可能在另一个人的计算机上运行，​​该程序导入公钥并验证签名的真实性。最后，该示例讨论了基本程序使用的方法的潜在弱点，并演示了提供和导入密钥的可能替代方法和方法，包括证书。

![Trail icon](img/0689397fa9cc4e369d63fc92b3bb6f38.jpg) [实现自己的权限](./userperm/index.html)演示了如何编写定义自己的特殊权限的类。

## 欲获得更多信息

可以在 [Security](https://docs.oracle.com/javase/8/docs/technotes/guides/security/index.html) 指南页面找到 JDK 安全发布文档。此索引页面列出了规范，其中提供了有关最新安全功能的详细信息，包括体系结构规范，使用指南，API 文档和工具文档。