您当前的位置:首页 > 计算机 > 编程开发 > Java

Java 加密算法 HMAC SHA256

时间:12-14来源:作者:点击数:

ApiSecurityExample.java 源码如下:

import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;

public class ApiSecurityExample {
  public static void main(String[] args) {
    try {
     String secret = "NCKDUmPQtBDocbqu6ZFo0juJlfGNJXvf";
     String message = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnNUwxQmFFbFdmcHhLalM4SUpsdWNFczk5VEZ0b2g4WiJ9";

     Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
     SecretKeySpec secret_key = new SecretKeySpec(secret.getBytes(), "HmacSHA256");
     sha256_HMAC.init(secret_key);

     String hash = Base64.encodeBase64String(sha256_HMAC.doFinal(message.getBytes()));
     System.out.println(hash);
    }
    catch (Exception e){
     System.out.println("Error");
    }
   }
}

源码中的 message 是一个 JWT 的头和载荷。

需要下载 apache 的包:

$ wget http://www-us.apache.org/dist//commons/codec/binaries/commons-codec-1.10-bin.zip
$ unzip commons-codec-1.10-bin.zip
$ javac -cp ".:./commons-codec-1.10/commons-codec-1.10.jar" ApiSecurityExample.java
$ java -cp ".:./commons-codec-1.10/commons-codec-1.10.jar" ApiSecurityExample
wc0tE4XSb+iYxBs9a/XWgT0btABQM6JyWCHpSlleUlg=

unzip 自动创建了目录 commons-codec-1.10 目录,解压出 jar 包。-cp 参数指明了类路径。而输出的 wc0tE4XSb+iYxBs9a/XWgT0btABQM6JyWCHpSlleUlg= 是JWT的签名。 这个签名同 https://jwt io/ 计算出的一样。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐