117.info
人生若只如初见

java中hmacsha256怎么使用

在Java中使用HmacSHA256可以通过javax.crypto包中的Mac类实现。以下是一个使用HmacSHA256算法对数据进行加密的示例代码:

import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;

public class HmacSHA256Example {

    public static void main(String[] args) {
        String data = "https://www.yisu.com/ask/Hello, World!";
        String key = "secretKey";

        try {
            Mac hmacSHA256 = Mac.getInstance("HmacSHA256");
            SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(), "HmacSHA256");
            hmacSHA256.init(secretKey);
            byte[] hash = hmacSHA256.doFinal(data.getBytes());
            String encodedHash = Base64.getEncoder().encodeToString(hash);

            System.out.println("HMAC-SHA256 hash: " + encodedHash);
        } catch (NoSuchAlgorithmException | InvalidKeyException e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,首先创建了一个HmacSHA256实例,并使用指定的密钥对其进行初始化。然后对数据进行加密操作,并将加密后的结果转换为Base64编码的字符串输出。

请注意,此示例中使用了Base64编码对加密结果进行了转换,如果需要原始的字节数组可以直接使用hash变量。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fea49AzsLAQRXAVU.html

推荐文章

  • 求quoted-printable编码的解码的java程序

    以下是一个简单的Java程序,用于对quoted-printable编码进行解码:import java.io.UnsupportedEncodingException;
    import java.nio.charset.StandardCharse...

  • java BigDecimal类型 比较大小

    在Java中,可以使用BigDecimal类的compareTo()方法来比较两个BigDecimal对象的大小。
    compareTo()方法返回一个整数值,表示两个BigDecimal对象的大小关系。...

  • Java Console.readLine()方法示例

    以下是一个示例代码,用于演示Java Console.readLine()方法的使用:
    import java.io.Console; public class ReadLineExample { public static void main(St...

  • Java如何将InputStream转换为Reader

    可以使用InputStreamReader类将InputStream转换为Reader。
    示例代码如下:
    InputStream inputStream = ...; // 输入流
    Reader reader = new Inpu...

  • mysql中date_format函数有什么用

    MySQL中的date_format函数用于将日期时间格式化为指定的格式。该函数接受两个参数,第一个参数是日期时间值,第二个参数是要格式化的格式字符串。
    例如,可...

  • Vue中this.$set的作用和用法是什么

    在Vue中,当需要在响应式对象上添加一个新的属性时,如果直接使用赋值操作符(如this.someProperty = someValue),Vue无法检测到这个属性的变化,从而导致该属性...

  • mysql无法连接到本地主机怎么解决

    出现无法连接到本地主机的问题可能是由于以下几种原因导致的: MySQL服务未启动:首先确保MySQL服务已经正确启动,可以通过命令行或者服务管理工具来启动MySQL服...

  • python字符串查找的方法是什么

    在Python中,有多种方法可以用来查找字符串。以下是一些常用的方法: 使用 find() 方法:可以通过在字符串上调用 find() 方法来查找子字符串。该方法返回查找到的...