java - hmac 消息加密但使用我们自己的 key

标签 java encryption cryptography hmac

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) { }

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

最佳答案

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

关于java - hmac 消息加密但使用我们自己的 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3780771/

相关文章:

java - 如何创建同步数组列表

Java - 如何让程序在内部运行jar文件

java - 降低新 JVM 的性能

java - Guava 函数参数

javascript - Meteor 中的加密

ios - iOS Swift 中使用 CBC 模式的 AES 128 解密

java - 检索解密数据时出现问题

c - sha1_process 宏评估值?

android - 在混合加密中对整个 session 使用一个 session key 有什么问题?

c# - OpenSSL 错误 "data greater than mod len"