Java hmac消息加密,但使用我们自己的密钥

Java hmac消息加密,但使用我们自己的密钥,java,encryption,cryptography,hmac,Java,Encryption,Cryptography,Hmac,上面的代码将为我们提供使用HMAC消化消息的密钥。现在我想在java中实现一个HMAC逻辑,其中密钥由用户提供。 有什么想法吗?使用提供的用户密钥构造一个KeySpec(如果是字节数组,则为SecretKeySpec,如果是密码),然后使用SecretKeyFactory将其转换为SecretKey使用提供的用户密钥构造一个KeySpec(如果是字节数组,则为SecretKeySpec,如果是密码,则为PBEKeySpec),然后使用SecretKeyFactory将其转换为SecretKey

上面的代码将为我们提供使用HMAC消化消息的密钥。现在我想在java中实现一个HMAC逻辑,其中密钥由用户提供。
有什么想法吗?

使用提供的用户密钥构造一个
KeySpec
(如果是字节数组,则为
SecretKeySpec
,如果是密码),然后使用
SecretKeyFactory
将其转换为
SecretKey

使用提供的用户密钥构造一个
KeySpec
(如果是字节数组,则为
SecretKeySpec
,如果是密码,则为
PBEKeySpec
),然后使用
SecretKeyFactory
将其转换为
SecretKey

try { // Generate a key for the HMAC-MD5 keyed-hashing algorithm
     KeyGenerator keyGen = KeyGenerator.getInstance("HmacMD5");
     SecretKey key = keyGen.generateKey(); 
    // Generate a key for the HMAC-SHA1 keyed-hashing algorithm 
keyGen = KeyGenerator.getInstance("HmacSHA1"); 
        key = keyGen.generateKey(); } 
        catch (java.security.NoSuchAlgorithmException e) { }