# 课程：签署代码并授予权限

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

本课程介绍如何使用`keytool`，`jarsigner`，`Policy Tool`和`jar`将文件放入 JAR（Java ARchive）文件，以便`jarsigner`工具进行后续签名。

本课有两个部分。首先，您将创建和部署应用程序。第二;您将充当已签名应用程序的收件人。

以下是创建和部署应用程序的步骤：

**注意：**为方便起见，您假装是名为 Susan Jones 的用户/开发人员。生成密钥时需要定义 Susan Jones。

*   将包含应用程序的 Java 类文件放入 JAR 文件中
*   签署 JAR 文件
*   导出与用于对 JAR 文件签名的私钥对应的公钥证书

以下是向应用程序授予权限的步骤

**注意：**为方便起见，您假装是名为 Ray 的用户。

*   您可以看到签名的应用程序在安全管理器下运行时无法正常读取文件。
*   使用`keytool`将证书导入到`susan`别名的条目中的 Ray 密钥库中
*   使用策略工具在 Ray 的策略文件中创建一个条目，以允许`susan`签名的代码读取指定的文件。
*   最后，您将看到在安全管理器下运行的应用程序现在如何读取该文件，因为它已获得执行此操作的权限。

有关数字签名，证书，密钥库和工具的详细信息，请参阅 [API 和用于安全代码和文件交换的工具](../sigcert/index.html)课程。

* * *

**Important:** You need to perform the tasks in this lesson while working in the directory in which you store the sample application, but you should store the data file needed by the application in a different directory. All examples in this trail assume that you are working in the `C:\Test` directory, and that the data file is in the `C:\TestData` directory.

If you are working on a UNIX system, substitute your own directory names.

* * *

以下是步骤：

*   [代码签名者](signer.html)的步骤
*   [代码接收器的步骤](receiver.html)