Module  java.base
软件包  javax.crypto

Class SecretKeyFactory



  • public class SecretKeyFactory
    extends Object
    这个类代表一个秘密密钥的工厂。

    主要工厂用于将Key型的不透明加密密钥)转换为密钥规范 (基础密钥材料的透明表示),反之亦然。 秘密密钥工厂仅在秘密(对称)密钥上运行。

    关键工厂是双向的,即它们允许从给定的密钥规范(密钥材料)构建一个不透明的密钥对象,或以适当的格式检索密钥对象的基础密钥材料。

    应用程序开发人员应参考其提供商的文档,以了解generateSecretgetKeySpec方法支持哪些关键规范。 例如,由“SunJCE”提供商提供的DES秘密密钥工厂支持DESKeySpec作为DES密钥的透明表示,该提供商的三重DES密钥密钥工厂支持DESedeKeySpec作为三重DES密钥的透明表示。

    Java平台的每个实现都需要支持以下标准的SecretKeyFactory算法:

    • DES
    • DESede
    这些算法在Java安全标准算法名称规范的SecretKeyFactory section中进行了描述。 请参阅发行说明文件以了解是否支持其他算法。
    从以下版本开始:
    1.4
    另请参见:
    SecretKeyDESKeySpecDESedeKeySpecPBEKeySpec
    • 构造方法详细信息

      • SecretKeyFactory

        protected SecretKeyFactory​(SecretKeyFactorySpi keyFacSpi,
                                   Provider provider,
                                   String algorithm)
        创建一个SecretKeyFactory对象。
        参数
        keyFacSpi - 代表
        provider - 提供商
        algorithm - 秘密密钥算法
    • 方法详细信息

      • getProvider

        public final Provider getProvider​()
        返回此 SecretKeyFactory对象的提供者。
        结果
        这个 SecretKeyFactory对象的提供者
      • getAlgorithm

        public final String getAlgorithm​()
        返回此SecretKeyFactory对象的算法名称。

        这是在创建此SecretKeyFactory对象的getInstance调用之一中指定的名称。

        结果
        这个 SecretKeyFactory对象的算法名称。
      • generateSecret

        public final SecretKey generateSecret​(KeySpec keySpec)
                                       throws InvalidKeySpecException
        根据提供的密钥规范(密钥材料)生成一个 SecretKey对象。
        参数
        keySpec - 秘密密钥的规范(密钥材料)
        结果
        密钥
        异常
        InvalidKeySpecException - 如果给定的密钥规范不适合该秘密密钥工厂产生密钥。
      • getKeySpec

        public final KeySpec getKeySpec​(SecretKey key,
                                        Class<?> keySpec)
                                 throws InvalidKeySpecException
        以请求的格式返回给定键对象的规范(关键材料)。
        参数
        key - 关键
        keySpec - 要求退还关键材料的要求格式
        结果
        请求格式的基础密钥规范(密钥材料)
        异常
        InvalidKeySpecException - 如果请求的密钥规范对于给定的密钥是不合适的(例如,与 keykeySpec相关联的算法不匹配,或者 key引用加密硬件设备上的密钥,而 keySpec是基于软件的密钥的规范)或者给定的密钥不能被处理(例如,给定的密钥具有该秘密密钥工厂不支持的算法或格式)。
      • translateKey

        public final SecretKey translateKey​(SecretKey key)
                                     throws InvalidKeyException
        将其提供者可能未知或可能不受信任的关键对象转换为该秘密密钥工厂的相应密钥对象。
        参数
        key - 提供者未知或不信任的关键
        结果
        翻译密钥
        异常
        InvalidKeyException - 如果该密钥工厂无法处理给定的密钥。