zoukankan      html  css  js  c++  java
  • 3.8一个代码签名示例

    这些类型(Doer、Friend和Stranger)是为了说明访问控制的栈捡查机制而设计的。在本章后 面将给出一些栈检査的例子,那时读者就会理解设计它们的目的。

    为了用Java 2 SDK 1.2中的jarsigner工具对JAR文件进行签名,keystore文件中必须存储签名者的公钥/私钥对,这个文件用来存储已命名的、受密码保护的密钥。Java 2 SDK 1.2中的keytool程序可用来生成新的密钥对,将这个密钥对和一个名称(或别名)相关联,并且用密码将它们保护起来。这个别名在每一个keystore文件中都是独立的,它用于在一个特定的keystore文件中 识别一个特定的密钥对。要访问或者修改包含在keystore文件中的密钥对的信息,必须要有这个密钥对的密码。

    这个访问控制的例子需要在security/ex2目录下的名为ivjmiceys的keystore文件,这个文件中包含别名为“friend"和“stranger"的两个密钥对。在security/cx2目录下运行下面的命令,将为别名friend产生密码为friend4life的密钥对。在这个过程中,它将生成一个名为ijvmkeys的keystore文件:

    keytool -genkey -alias friend -keypass friend4life
    -validity 10000 -keystore ijvmkeys

    在这个keytool命令中,-validity 10000这个命令行参数说明了这个名密钥对将在10000天之内有效,相当于27年多,这个时间应该足够长的。当命令运行时,它将产生—个keystore密码,在对这个keystore文件进行任意访问或修改时都需要这个keystore密码。赋给ijvmkeys的密码是“ijvm2ed”。

    既然现在keystore文件ijvmkeys包含了friend和stranger的密钥对,而且JAR文件friend.jar和 stranger.jar包含了合适的class文件,JAR文件就可以被最终签名了。在example/ext目录下执行下面的jarsigner命令,将用friend的私钥对包含在friend .jar文件中的class文件进行签名:

    jarsigner -keystore ijvmkeys -storepass ijvn2ed -keypass frlend41ife friend.jar friend

  • 相关阅读:
    时间戳计算
    .NET/C#/Oracle数据库操作类
    memcached安装及.NET中的Memcached.ClientLibrary使用
    C# Redis
    Jmeter教程 简单的压力测试
    Elasticsearch查询类型
    Windows 如何查看本地端口被进程占用的情况?
    Log4net 配置
    NLog 配置
    RPC原理
  • 原文地址:https://www.cnblogs.com/mongotea/p/11979235.html
Copyright © 2011-2022 走看看