帆软帮助文档代码合集。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
2.1 KiB

import com.fr.cert.token.JwtBuilder;
import com.fr.cert.token.Jwts;
import com.fr.cert.token.SignatureAlgorithm;
import sun.misc.BASE64Encoder;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.util.Date;
public class Test2 {
public static void main(String[] args) {
//数字签名有效时长
long validTime = 30 * 60 * 1000;
//数字签名内容,以访问资源的相对路径作为内容
String path = "GettingStarted.cpt";
//数字签名用的HS256的密钥
String key = createSecret();
//生成fine_digital_signature
String fine_digital_signature = createJwt("", "", path, validTime, key);
//输出密钥
System.out.println(key);
//输出fine_digital_signature
System.out.println(fine_digital_signature);
}
private static String createJwt(String issuer, String id, String subject, long validTime, String key) {
SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;
Date currentTime = new Date();
Date expirationTime = new Date(currentTime.getTime() + validTime);
JwtBuilder builder = Jwts.builder()
.setIssuer(issuer)
.setSubject(subject)
.setIssuedAt(currentTime)
.setExpiration(expirationTime)
.setId(id)
.signWith(signatureAlgorithm, key);
return builder.compact();
}
private static String createSecret() {
try {
//secret可以自定义的
String secret = "2222222";
String message = "";
Mac sha256Hmac = Mac.getInstance("HmacSHA256");
SecretKeySpec secret_key = new SecretKeySpec(secret.getBytes(), "HmacSHA256");
sha256Hmac.init(secret_key);
BASE64Encoder encoder = new BASE64Encoder();
String hash = encoder.encode(sha256Hmac.doFinal(message.getBytes()));
return hash;
} catch (Exception e) {
System.out.println(e.getMessage());
}
return "";
}
}