美文网首页实践提升
JCA 实践记录——KeyGenerator

JCA 实践记录——KeyGenerator

作者: JSON_NULL | 来源:发表于2019-02-01 14:59 被阅读15次

    KeyGenerator 用于生成对称加密算法中使用密钥。

    实例化

    KeyGenerator没有公开的构造方法,所以只能调用其静态方法getInstace进行实现化。这个方法有多个重载如下:

    public static final KeyGenerator getInstance(String algorithm) 
         throws NoSuchAlgorithmException
    
    public static final KeyGenerator getInstance(String algorithm, Provider provider)
         throws NoSuchAlgorithmException 
    
    public static final KeyGenerator getInstance(String algorithm, String provider) 
         throws NoSuchAlgorithmException, NoSuchProviderException
    

    我们通常使用的是public static final KeyGenerator getInstance(String algorithm);此方法需要一个字符串作为参数,用于说明使用哪个密钥算法。

    初始化

    KeyGenerator 中可用的初始化方法如下:

    public final void init(AlgorithmParameterSpec algorithmParameterSpec ) 
        throws InvalidAlgorithmParameterException;
    
    public final void init(AlgorithmParameterSpec algorithmParameterSpec , SecureRandom random) 
        throws InvalidAlgorithmParameterException;
    
    public final void init(AlgorithmParameterSpec algorithmParameterSpec , SecureRandom random) 
        throws InvalidAlgorithmParameterException;
    
    public final void init(int size);
    
    public final void init(int size, SecureRandom random);
    
    public final void init(SecureRandom random);
    

    通常情况下我们使用public final void init(int size);就足够了。

    核心方法 generateKey

    public final SecretKey generateKey()
    

    生成一个当前KeyGenerator实例所对应算法的密钥。

    支持的算法(不区分大小写)

    1. AES
    2. ARCFOUR
    3. Blowfish
    4. DES
    5. DESede
    6. HmacMD5、HmacSHA1、HmacSHA256、HmacSHA384、HmacSHA512
    7. RC2
    8. SunTlsPrf,
    9. SunTls12Prf,
    10. SunTlsMasterSecret,
    11. SunTlsKeyMaterial,
    12. SunTlsRsaPremasterSecret

    相关文章

      网友评论

        本文标题:JCA 实践记录——KeyGenerator

        本文链接:https://www.haomeiwen.com/subject/xhkdsqtx.html