Java 加密算法 HMAC SHA256
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/
计算出的一样。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论