java.security

类 KeyStore

java.lang.Object  java.security.KeyStore

  • public class KeyStore
  • extends Object

此类表示密钥和证书的存储设施。

KeyStore 管理不同类型的条目。每种类型的条目都实现 KeyStore.Entry 接口。提供了三种基本的 KeyStore.Entry 实现:

  • KeyStore.PrivateKeyEntry

    此类型的条目保存一个加密的 PrivateKey,可以选择用受保护格式存储该私钥,以防止未授权访问。它还随附一个相应公钥的证书链。

    给定条目使用私钥和证书链进行自验证 (self-authentication)。应用此验证的包括软件发布组织,它们将 JAR 文件签名为发布和/或许可软件的一部分。

  • KeyStore.SecretKeyEntry

    此类型的条目保存一个加密的 SecretKey,可以选择用受保护格式存储该密钥,以防止未授权访问。

  • KeyStore.TrustedCertificateEntry

    此类型的条目包含一个属于另一方的单个公钥 Certificate。它被称为可信证书,因为 keystore 的所有者相信证书中的公钥确实属于该证书的 subject(所有者)所标识的身份。

    此类型的条目可用于验证其他方。

KeyStore 中的每一条目都用 “alias” 字符串标识。对于私钥及其关联的证书链,这些字符串用于区分实体验证自身可以采用的不同方式。例如,实体可以使用不同的证书授权或不同的公钥算法来验证自身。

别名是否区分大小写与实现有关。为了避免出现问题,建议不要在 KeyStore 中使用只有大小写区别的别名。

在这里没有指定 keystore 是否是持久性的,也没有指定 keystore 是持久性时所使用的机制。这允许使用各种技术保护敏感的(例如,私有的或秘密的)密钥。一种选择是使用智能卡或其他集成加密引擎 (SafeKeyper),也可以(以各种格式)使用文件之类更为简单的机制。

请求 KeyStore 对象的典型方式包括使用默认类型和提供一个特定的 keystore 类型。

  • 使用默认类型:

        KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());

    系统将返回默认类型的 keystore 实现。

  • 提供特定的 keystore 类型:

          KeyStore ks = KeyStore.getInstance("JKS");

    系统将返回环境中可用的指定 keystore 类型的首选实现。

必须先加载 keystore 才能对其进行访问。

    KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());// get user password and file input streamchar[] password = getPassword();java.io.FileInputStream fis = null;try {fis = new java.io.FileInputStream("keyStoreName");ks.load(fis, password);} finally {if (fis != null) {fis.close();}}

要使用上述 load 方法创建一个空 keystore,传递 null 作为 InputStream 的参数。

一旦加载了 keystore,就能够从 keystore 读取现有条目,或向 keystore 写入新条目:

    // get my private keyKeyStore.PrivateKeyEntry pkEntry = (KeyStore.PrivateKeyEntry)ks.getEntry("privateKeyAlias", password);PrivateKey myPrivateKey = pkEntry.getPrivateKey();// save my secret keyjavax.crypto.SecretKey mySecretKey;KeyStore.SecretKeyEntry skEntry =new KeyStore.SecretKeyEntry(mySecretKey);ks.setEntry("secretKeyAlias", skEntry, new KeyStore.PasswordProtection(password));// store away the keystorejava.io.FileOutputStream fos = null;try {fos = new java.io.FileOutputStream("newKeyStoreName");ks.store(fos, password);} finally {if (fos != null) {fos.close();}}

注意,可以使用相同的密码加载 keystore、保护私钥条目、保护秘密密钥条目以及存储 keystore(如上文示例代码所示),也可以使用不同的密码或其他保护参数。

  • 从以下版本开始:

  • 1.2

  • 另请参见:

  • PrivateKey, SecretKey, Certificate


嵌套类摘要
static class KeyStore.Builder 
          将被实例化的 KeyStore 对象的描述。
static class KeyStore.CallbackHandlerProtection 
          封装 CallbackHandler 的 ProtectionParameter。
static interface KeyStore.Entry 
          用于 KeyStore 项类型的标记接口。
static interface KeyStore.LoadStoreParameter 
          用于 KeyStore load 和 store 参数的标记接口。
static class KeyStore.PasswordProtection 
          ProtectionParameter 的一个基于密码的实现。
static class KeyStore.PrivateKeyEntry 
          保存 PrivateKey 和相应证书链的 KeyStore 项。
static interface KeyStore.ProtectionParameter 
          用于 keystore 保护参数的标记接口。
static class KeyStore.SecretKeyEntry 
          保存 SecretKey 的 KeyStore 项。
static class KeyStore.TrustedCertificateEntry 
          保存可信的 Certificate 的 KeyStore 项。
构造方法摘要
protected KeyStore(KeyStoreSpi keyStoreSpi, Provider provider, String type) 
          创建给定类型的 KeyStore 对象,并在其中封装给定的提供者实现(SPI 对象)。
方法摘要
 Enumeration<String> aliases() 
          列出此 keystore 的所有别名。
 boolean containsAlias(String alias) 
          检查给定别名是否存在于此 keystore 中。
 void deleteEntry(String alias) 
          删除此 keystore 中给定别名标识的条目。
 boolean entryInstanceOf(String alias, Class<? extends KeyStore.Entry> entryClass) 
          确定指定 alias 的 keystore Entry 是否是指定 entryClass 的实例或子类。
 Certificate getCertificate(String alias) 
          返回与给定别名关联的证书。
 String getCertificateAlias(Certificate cert) 
          返回证书与给定证书匹配的第一个 keystore 条目的别名。
 Certificate[] getCertificateChain(String alias) 
          返回与给定别名关联的证书链。
 Date getCreationDate(String alias) 
          返回给定别名标识的条目的创建日期。
static String getDefaultType() 
          返回 Java 安全属性文件中指定的默认 keystore 类型;如果不存在此类属性,则返回字符串 "jks"("Java keystore" 的首字母缩写)。
 KeyStore.Entry getEntry(String alias, KeyStore.ProtectionParameter protParam) 
          使用指定保护参数获取指定别名的 keystore Entry
static KeyStore getInstance(String type) 
          返回指定类型的 keystore 对象。
static KeyStore getInstance(String type, Provider provider) 
          返回指定类型的 keystore 对象。
static KeyStore getInstance(String type, String provider) 
          返回指定类型的 keystore 对象。
 Key getKey(String alias, char[] password) 
          返回与给定别名关联的密钥,并用给定密码来恢复它。
 Provider getProvider() 
          返回此 keystore 的提供者。
 String getType() 
          返回此 keystore 的类型。
 boolean isCertificateEntry(String alias) 
          如果给定别名标识的条目是通过调用 setCertificateEntry 或者以 TrustedCertificateEntry 为参数的 setEntry 创建的,则返回 true。
 boolean isKeyEntry(String alias) 
          如果给定别名标识的条目是通过调用 setKeyEntry 或者以 PrivateKeyEntry 或 SecretKeyEntry 为参数的 setEntry 创建的,则返回 true。
 void load(InputStream stream, char[] password) 
          从给定输入流中加载此 KeyStore。
 void load(KeyStore.LoadStoreParameter param) 
          使用给定 LoadStoreParameter 加载此 keystore。
 void setCertificateEntry(String alias, Certificate cert) 
          将给定可信证书分配给给定别名。
 void setEntry(String alias, KeyStore.Entry entry, KeyStore.ProtectionParameter protParam) 
          用指定别名保存 keystore Entry
 void setKeyEntry(String alias, byte[] key, Certificate[] chain) 
          将给定密钥(已经被保护)分配给给定别名。
 void setKeyEntry(String alias, Key key, char[] password, Certificate[] chain) 
          将给定的密钥分配给给定的别名,并用给定密码保护它。
 int size() 
          获取此 keystore 中条目数。
 void store(KeyStore.LoadStoreParameter param) 
          使用给定 LoadStoreParameter 存储此 keystore。
 void store(OutputStream stream, char[] password) 
          将此 keystore 存储到给定输出流,并用给定密码保护其完整性。
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
构造方法详细信息

KeyStore

protected KeyStore(KeyStoreSpi keyStoreSpi,Provider provider,String type)
  • 创建给定类型的 KeyStore 对象,并在其中封装给定的提供者实现(SPI 对象)。

    • 参数:

    • keyStoreSpi - 提供者实现

    • provider - 提供者

    • type - keystore 类型。

方法详细信息

getInstance

public static KeyStore getInstance(String type)throws KeyStoreException
  • 返回指定类型的 keystore 对象。

    此方法从首选 Provider 开始遍历已注册安全提供者列表。返回一个封装 KeyStoreSpi 实现的新 KeyStore 对象,该实现取自第一个支持指定类型的 Provider。

    注意,可以通过 Security.getProviders() 方法获取已注册提供者列表。

    • 参数:

    • type - keystore 类型。有关标准 keystore 类型的信息,请参阅 Java Cryptography Architecture API Specification & Reference 中的附录 A。

    • 返回:

    • 指定类型的 keystore 对象。

    • 抛出:

    • KeyStoreException - 如果没有 Provider 支持指定类型的 KeyStoreSpi 实现。

    • 另请参见:

    • Provider


getInstance

public static KeyStore getInstance(String type,String provider)throws KeyStoreException,NoSuchProviderException
  • 返回指定类型的 keystore 对象。

    返回一个封装 KeyStoreSpi 实现的新 KeyStore 对象,该实现取自指定提供者。指定提供者必须在安全提供者列表中注册。

    注意,可以通过 Security.getProviders() 方法获取已注册提供者列表。

    • 参数:

    • type - keystore 类型。有关标准 keystore 类型的信息,请参阅 Java Cryptography Architecture API Specification & Reference 中的附录 A。

    • provider - 提供者的名称。

    • 返回:

    • 指定类型的 keystore 对象。

    • 抛出:

    • KeyStoreException - 如果不能从指定提供者获得指定类型的 KeyStoreSpi 实现。

    • NoSuchProviderException - 如果指定提供者未在安全提供者列表中注册。

    • IllegalArgumentException - 如果提供者的名称为 null 或空。

    • 另请参见:

    • Provider


getInstance

public static KeyStore getInstance(String type,Provider provider)throws KeyStoreException
  • 返回指定类型的 keystore 对象。

    返回一个封装 KeyStoreSpi 实现的新 KeyStore 对象,该实现取自指定 Provider 对象。注意,指定 Provider 对象无需在提供者列表中注册。

    • 参数:

    • type - keystore 类型。有关标准 keystore 类型的信息,请参阅 Java Cryptography Architecture API Specification & Reference 中的附录 A。

    • provider - 提供者。

    • 返回:

    • 指定类型的 keystore 对象。

    • 抛出:

    • KeyStoreException - 如果不能从指定 Provider 对象获得指定类型的 KeyStoreSpi 实现。

    • IllegalArgumentException - 如果指定提供者为 null。

    • 从以下版本开始:

    • 1.4

    • 另请参见:

    • Provider


getDefaultType

public static final String getDefaultType()
  • 返回 Java 安全属性文件中指定的默认 keystore 类型;如果不存在此类属性,则返回字符串 "jks"("Java keystore" 的首字母缩写)。Java 安全属性文件位于名为 <JAVA_HOME>/lib/security/java.security 的文件中。<JAVA_HOME> 引用 java.home 系统属性的值,并指定安装 JRE 的目录。

    调用某个 getInstance 方法时不希望使用固定编码 (hard coded) keystore 类型的应用程序,以及用户未指定 keystore 类型时希望提供默认 keystore 类型的应用程序可以使用默认的 keystore 类型。

    通过将 "keystore.type" 安全属性(在 Java 安全属性文件中)的值设置为所需的 keystore 类型,可以更改默认的 keystore 类型。

    • 返回:

    • Java 安全属性文件中指定的默认 keystore 类型;如果不存在此类属性,则返回字符串 "jks"。


getProvider

public final Provider getProvider()
  • 返回此 keystore 的提供者。

    • 返回:

    • 此 keystore 的提供者。


getType

public final String getType()
  • 返回此 keystore 的类型。

    • 返回:

    • 此 keystore 的类型。


getKey

public final Key getKey(String alias,char[] password)throws KeyStoreException,NoSuchAlgorithmException,UnrecoverableKeyException
  • 返回与给定别名关联的密钥,并用给定密码来恢复它。必须已经通过调用 setKeyEntry,或者以 PrivateKeyEntry 或 SecretKeyEntry 为参数的 setEntry 关联密钥与别名。

    • 参数:

    • alias - 别名

    • password - 用于恢复密钥的密码

    • 返回:

    • 请求的密钥;如果给定别名不存在或不标识与密钥相关的条目,则返回 null。

    • 抛出:

    • KeyStoreException - 如果 keystore 尚未被初始化(加载)。

    • NoSuchAlgorithmException - 如果不能找到恢复密钥的算法

    • UnrecoverableKeyException - 如果不能恢复密钥(例如,给定密码错误)。


getCertificateChain

public final Certificate[] getCertificateChain(String alias)throws KeyStoreException
  • 返回与给定别名关联的证书链。必须已经通过调用 setKeyEntry,或者以 PrivateKeyEntry 为参数的 setEntry 关联证书链与别名。

    • 参数:

    • alias - 别名

    • 返回:

    • 证书链(按用户证书在前,根证书授权在后的顺序);如果给定别名不存在或不包含证书链,则返回 null

    • 抛出:

    • KeyStoreException - 如果 keystore 尚未被初始化(加载)。


getCertificate

public final Certificate getCertificate(String alias)throws KeyStoreException
  • 返回与给定别名关联的证书。

    如果给定的别名标识通过调用 setCertificateEntry 创建的条目,或者通过调用以 TrustedCertificateEntry 为参数的 setEntry 创建的条目,则返回包含在该条目中的可信证书。

    如果给定的别名标识通过调用 setKeyEntry 创建的条目,或者通过调用以 PrivateKeyEntry 为参数的 setEntry 创建的条目,则返回该条目中证书链的第一个元素。

    • 参数:

    • alias - 别名

    • 返回:

    • 证书;如果给定别名不存在或不包含证书,则返回 null。

    • 抛出:

    • KeyStoreException - 如果 keystore 尚未被初始化(加载)。


getCreationDate

public final Date getCreationDate(String alias)throws KeyStoreException
  • 返回给定别名标识的条目的创建日期。

    • 参数:

    • alias - 别名

    • 返回:

    • 此条目的创建日期;如果给定的别名不存在,则返回 null

    • 抛出:

    • KeyStoreException - 如果 keystore 尚未被初始化(加载)。


setKeyEntry

public final void setKeyEntry(String alias,Key key,char[] password,Certificate[] chain)throws KeyStoreException
  • 将给定的密钥分配给给定的别名,并用给定密码保护它。

    如果给定密钥的类型为 java.security.PrivateKey,则它必须附带证明相应公钥的证书链。

    如果给定别名已经存在,则与别名关联的 keystore 信息将被给定密钥(还可能包括证书链)重写。

    • 参数:

    • alias - 别名

    • key - 要与别名关联的密钥

    • password - 保护密钥的密码

    • chain - 相应公钥的证书链(只在给定密钥的类型为 java.security.PrivateKey 时需要)。

    • 抛出:

    • KeyStoreException - 如果 keystore 尚未被初始化(加载)、无法保护给定的密钥,或者此操作由于某些其他原因而失败


setKeyEntry

public final void setKeyEntry(String alias,byte[] key,Certificate[] chain)throws KeyStoreException
  • 将给定密钥(已经被保护)分配给给定别名。

    如果受保护密钥的类型为 java.security.PrivateKey,则它必须附带证明相应公钥的证书链。如果底层 keystore 实现的类型为 jks,则必须根据 PKCS #8 标准中的定义将key 编码为 EncryptedPrivateKeyInfo

    如果给定别名已经存在,则与别名关联的 keystore 信息将被给定密钥(还可能包括证书链)重写。

    • 参数:

    • alias - 别名

    • key - 要与别名关联的密钥(以受保护格式)

    • chain - 相应公钥的证书链(只在受保护密钥的类型为 java.security.PrivateKey 时有用)。

    • 抛出:

    • KeyStoreException - 如果 keystore 尚未被初始化(加载),或者此操作由于某些其他原因而失败。


setCertificateEntry

public final void setCertificateEntry(String alias,Certificate cert)throws KeyStoreException
  • 将给定可信证书分配给给定别名。

    如果给定别名标识通过调用 setCertificateEntry 创建的现有条目,或者通过调用以 TrustedCertificateEntry 为参数的 setEntry 创建的现有条目,则现有条目中的可信证书将被给定证书重写。

    • 参数:

    • alias - 别名

    • cert - 证书

    • 抛出:

    • KeyStoreException - 如果 keystore 尚未被初始化,或者给定别名已存在但不标识包含可信证书的条目,或者此操作由于其他某些原因失败。


deleteEntry

public final void deleteEntry(String alias)throws KeyStoreException
  • 删除此 keystore 中给定别名标识的条目。

    • 参数:

    • alias - 别名

    • 抛出:

    • KeyStoreException - 如果 keystore 尚未被初始化,或者条目不能被移除。


aliases

public final Enumeration<String> aliases()throws KeyStoreException
  • 列出此 keystore 的所有别名。

    • 返回:

    • 别名的枚举

    • 抛出:

    • KeyStoreException - 如果 keystore 尚未被初始化(加载)。


containsAlias

public final boolean containsAlias(String alias)throws KeyStoreException
  • 检查给定别名是否存在于此 keystore 中。

    • 参数:

    • alias - 别名

    • 返回:

    • 如果别名存在,则返回 true;否则返回 false

    • 抛出:

    • KeyStoreException - 如果 keystore 尚未被初始化(加载)。


size

public final int size()throws KeyStoreException
  • 获取此 keystore 中条目数。

    • 返回:

    • 此 keystore 中的条目数

    • 抛出:

    • KeyStoreException - 如果 keystore 尚未被初始化(加载)。


isKeyEntry

public final boolean isKeyEntry(String alias)throws KeyStoreException
  • 如果给定别名标识的条目是通过调用 setKeyEntry 或者以 PrivateKeyEntry 或 SecretKeyEntry 为参数的 setEntry 创建的,则返回 true。

    • 参数:

    • alias - 要检查的 keystore 条目的别名

    • 返回:

    • 如果给定别名标识的条目是与密钥相关的条目,则返回 true;否则返回 false。

    • 抛出:

    • KeyStoreException - 如果 keystore 尚未被初始化(加载)。


isCertificateEntry

public final boolean isCertificateEntry(String alias)throws KeyStoreException
  • 如果给定别名标识的条目是通过调用 setCertificateEntry 或者以 TrustedCertificateEntry 为参数的 setEntry 创建的,则返回 true。

    • 参数:

    • alias - 要检查的 keystore 条目的别名

    • 返回:

    • 如果给定别名标识的条目包含一个可信证书,则返回 true;否则返回 false。

    • 抛出:

    • KeyStoreException - 如果 keystore 尚未被初始化(加载)。


getCertificateAlias

public final String getCertificateAlias(Certificate cert)throws KeyStoreException
  • 返回证书与给定证书匹配的第一个 keystore 条目的别名。

    此方法尝试将给定证书与每一个 keystore 条目匹配。如果认为条目是通过调用 setCertificateEntry 或者以 TrustedCertificateEntry 为参数的 setEntry 创建的,则将给定证书与该条目的证书进行比较。

    如果认为条目是通过调用 setKeyEntry 或者以 PrivateKeyEntry 为参数的 setEntry 创建的,则将给定证书与该条目证书链的第一个元素进行比较。

    • 参数:

    • cert - 要匹配的证书

    • 返回:

    • 带有匹配证书的第一个条目的别名;如果此 keystore 中不存在这种条目,则返回 null。

    • 抛出:

    • KeyStoreException - 如果 keystore 尚未被初始化(加载)。


store

public final void store(OutputStream stream,char[] password)throws KeyStoreException,IOException,NoSuchAlgorithmException,CertificateException
  • 将此 keystore 存储到给定输出流,并用给定密码保护其完整性。

    • 参数:

    • stream - 要写入此 keystore 的输出流。

    • password - 生成 keystore 完整性检验的密码

    • 抛出:

    • KeyStoreException - 如果 keystore 尚未被初始化(加载)。

    • IOException - 如果存在数据 I/O 问题

    • NoSuchAlgorithmException - 如果不存在恰当的数据完整性算法

    • CertificateException - 如果 keystore 数据中包含无法存储的证书


store

public final void store(KeyStore.LoadStoreParameter param)throws KeyStoreException,IOException,NoSuchAlgorithmException,CertificateException
  • 使用给定 LoadStoreParameter 存储此 keystore。

    • 参数:

    • param - 指定如何存储 keystore 的 LoadStoreParameter,该参数可以为 null

    • 抛出:

    • IllegalArgumentException - 如果无法识别给定的 LoadStoreParameter 输入

    • KeyStoreException - 如果 keystore 尚未被初始化(加载)

    • IOException - 如果存在数据 I/O 问题

    • NoSuchAlgorithmException - 如果不存在恰当的数据完整性算法

    • CertificateException - 如果 keystore 数据中包含无法存储的证书

    • 从以下版本开始:

    • 1.5


load

public final void load(InputStream stream,char[] password)throws IOException,NoSuchAlgorithmException,CertificateException
  • 从给定输入流中加载此 KeyStore。

    可以给定一个密码来解锁 keystore(例如,驻留在硬件标记设备上的 keystore)或检验 keystore 数据的完整性。如果没有指定用于完整性检验的密码,则不会执行完整性检验。

    如果要创建空 keystore,或者不能从流中初始化 keystore,则传递 null 作为 stream 的参数。

    注意,如果此 keystore 已经被加载,那么它将被重新初始化,并再次从给定输入流中加载。

    • 参数:

    • stream - 从中加载 keystore 的输入流,或者 null

    • password - 用来检验 keystore 完整性的密码,用来解锁 keystore 的密码,或者 null

    • 抛出:

    • IOException - 如果存在 keystore 数据 I/O 问题或格式问题,如果需要密码却没有指定,或者指定的密码错误。如果错误是由于密码错误引起的,那么 IOException 的 cause 应该是 UnrecoverableKeyException

    • NoSuchAlgorithmException - 如果不存在用来检验 keystore 完整性的算法

    • CertificateException - 如果不能加载 keystore 中的任何证书


load

public final void load(KeyStore.LoadStoreParameter param)throws IOException,NoSuchAlgorithmException,CertificateException
  • 使用给定 LoadStoreParameter 加载此 keystore。

    注意,如果此 KeyStore 已经被加载,那么它将被重新初始化,并再次从给定参数加载。

    • 参数:

    • param - 指定如何加载 keystore 的 LoadStoreParameter,可以为 null

    • 抛出:

    • IllegalArgumentException - 如果无法识别给定 LoadStoreParameter 输入

    • IOException - 如果存在 keystore 数据 I/O 问题或格式问题。如果错误是由于 ProtectionParameter 不正确(如密码错误)引起的,那么 IOException 的 cause 应该是UnrecoverableKeyException

    • NoSuchAlgorithmException - 如果不存在用来检验 keystore 完整性的算法

    • CertificateException - 如果不能加载 keystore 中的任何证书

    • 从以下版本开始:

    • 1.5


getEntry

public final KeyStore.Entry getEntry(String alias,KeyStore.ProtectionParameter protParam)throws NoSuchAlgorithmException,UnrecoverableEntryException,KeyStoreException
  • 使用指定保护参数获取指定别名的 keystore Entry

    • 参数:

    • alias - 获取此别名的 keystore Entry

    • protParam - 用来保护 Entry 的 ProtectionParameter,可以为 null

    • 返回:

    • 指定别名的 keystore Entry;如果不存在这种条目,则返回 null

    • 抛出:

    • NullPointerException - 如果 alias 为 null

    • NoSuchAlgorithmException - 如果不存在用来恢复条目的算法

    • UnrecoverableEntryException - 如果指定的 protParam 不足或无效

    • UnrecoverableKeyException - 如果该条目是 PrivateKeyEntry 或 SecretKeyEntry,并且指定的 protParam 不包含恢复密钥所需的信息(如密码错误)

    • KeyStoreException - 如果 keystore 尚未被初始化(加载)

    • 从以下版本开始:

    • 1.5

    • 另请参见:

    • setEntry(String, KeyStore.Entry, KeyStore.ProtectionParameter)


setEntry

public final void setEntry(String alias,KeyStore.Entry entry,KeyStore.ProtectionParameter protParam)throws KeyStoreException
  • 用指定别名保存 keystore Entry。保护参数用来保护 Entry

    如果指定别名的条目已经存在,它将被重写。

    • 参数:

    • alias - 以此别名保存 keystore Entry

    • entry - 要保存的 Entry

    • protParam - 用来保护 Entry 的 ProtectionParameter,可以为 null

    • 抛出:

    • NullPointerException - 如果 alias 或 entry 为 null

    • KeyStoreException - 如果 keystore 尚未被初始化(加载),或者此操作由于其他原因失败

    • 从以下版本开始:

    • 1.5

    • 另请参见:

    • getEntry(String, KeyStore.ProtectionParameter)


entryInstanceOf

public final boolean entryInstanceOf(String alias,Class<? extends KeyStore.Entry> entryClass)throws KeyStoreException
  • 确定指定 alias 的 keystore Entry 是否是指定 entryClass 的实例或子类。

    • 参数:

    • alias - 别名

    • entryClass - 条目的类

    • 返回:

    • true 如果指定 alias 的 keystore Entry 是指定 entryClass 的实例或子类,则返回 true;否则返回 false。

    • 抛出:

    • NullPointerException - 如果 alias 或 entryClass 为 null

    • KeyStoreException - 如果 keystore 尚未被初始化(加载)

    • 从以下版本开始:

    • 1.5

转载自:http://www.apihome.cn/api/java/KeyStore.html

转载于:https://blog.51cto.com/1306733/1741063

KeyStore(示例,出错代码)相关推荐

  1. oracle出错如何备份数据,Oracle数据库备份失败, 出错代码:0xe0001402

    Oracle数据库备份失败, 出错代码:0xe0001402文章:TECH117143|创建日期: 2009-01-31|更新日期: 2009-01-24| 文章类型Technical Solutio ...

  2. python字典示例简单代码_python学习笔记:字典的使用示例详解

    经典字典使用函数 dict:通过其他映射(比如其他字典)或者(键,值)这样的序列对建立字典.当然dict成为函数不是十分确切,它本质是一种类型.如同list. 代码如下: items=[('name' ...

  3. Dell服务器出错代码和含义

    Dell服务器出错代码和含义 解决 LCD 状态信息所述的问题 状态 LCD 上仅显示一则信息时,请在表中查找该代码并执行建议的更正措施.在这种情况下,LCD 上的代码指出的一般是十分明确而又容易更正 ...

  4. 【性能测试】获取性能系统指标之示例Python代码

    #!/usr/bin/env python #-*- coding: utf-8 -*- import sys import datetime import time import psutil fr ...

  5. 【我的Android进阶之旅】如何在Android Studio开发NDK的时候,通过addr2line或者ndk-stack来定位出错代码的位置

    文章目录 一.错误描述 1.1 写一段有错误代码 1.2 运行程序,查看错误日志 二.如何分析错误? 2.1 分析错误 2.2 异常时 信号 和 PC寄存器值 2.2.1 信号 2.2.2 PC寄存器 ...

  6. 发送邮件常见出错代码

    发送邮件常见出错代码[转贴] 按照下列"Q"代表问题,"A"代表解答.   Q:the server says:550 relaying mail to < ...

  7. 2016更改计算机名蓝屏,蓝屏故障:[16]0x00000019 蓝屏出错代码的解决方法

    蓝屏一般都有停机码,如果底部还有出错的文件名,那么出错的范围就可以进一步缩小.同时还要关注蓝屏前做了什么?这样判断就会更靠谱些. 工具/原料 手提电脑.台式电脑.蓝屏代码查询器.Windows操作系统 ...

  8. 微信小程序官方示例 Demo 代码

    以前只知道小程序有一个UI组件库, 不知道小程序还有一个官方示例Demo,今天用了一下大大的提高了我的编程速度,界面截图如下: 具体的你们自己打开吧,我给你们整好了拦截,微信小程序官方示例Demo代码 ...

  9. 皮肤检测算法三种,示例与代码

    今天是地球日,就选了张相关主题的图像做测试 第一种:RGB color space 第二种:RG color space 第三种:Ycrcb之cr分量+otsu阈值化 还有别的一些模型,效果不太好就不 ...

  10. 问题-[Delphi]通过Map文件查找内存地址出错代码所在行

     一 什么是MAP文件       什么是 MAP 文件?简单地讲, MAP 文件是程序的全局符号.源文件和代码行号信息的唯一的文本表示方法,它可以在任何地方.任何时候使用,不需要有额外的程序进行支持 ...

最新文章

  1. Android 通过Intent调用系统功能和Action动作和服务广播【大全】
  2. delete from t引发的血案
  3. POJ2570 二进制,位运算,Floyd
  4. 怎样删除word里的形状
  5. nginx学习笔记(8)虚拟主机名---转载
  6. VC/MFC Combo Box控件的用法
  7. P3157 [CQOI2011]动态逆序对 (CDQ解决三维偏序问题)
  8. CAS的ABA问题及解决方案
  9. utf—8在苹果手机上乱码_Xcode下的中文乱码问题
  10. linux操作实例,linux下的一些文档操作实例 | Soo Smart!
  11. 常见的软件生命周期模型
  12. 华硕主板固态硬盘不识别_华硕主板固态硬盘识别不出来怎么办
  13. 快速了解Spyder
  14. 运营进阶:产品运营画布九要素
  15. 睢阳区中小学计算机提升培训,商丘市中小学电脑制作活动培训顺利举行
  16. 查找二维数组中的非零元素
  17. python简历项目经验在哪里找_Linux运维工程师简历项目经验
  18. 机器学习基石-05-3-Effective Number of Hypotheses
  19. 在线下载离线地图瓦片 (支持百度、高德和谷歌地图)
  20. 微信发单机器人_微信多客服系统SDK通信接口

热门文章

  1. 什么叫SYN包,什么是SYN包***?
  2. web3js开发技术
  3. java 几何平均数_统计学——平均数
  4. 固态硅压阻压力传感器的优点
  5. Kiwi Syslog日志服务器的安装及配置使用
  6. 深度学习调参经验分享(遥感建筑提取)
  7. MySQL 误删数据恢复
  8. mysql利用二进制日志binlog恢复误删除操作
  9. 构建您的第一个Web爬网程序,第3部分
  10. win10打开计算机出现马赛克,传授win10系统在线播放视频出现马赛克的技巧