JWT是什么我就不多说,可以自行百度,然后现在要做的呢,就是使用私钥生成JWT,以及JWT的解密
首先,我们需要生成私钥和公钥
必须要有git哦,不然openssl命令不好用,我们直接可以再git的Bash上面敲下面的命令
第一步:生成私钥,这里我们指定私钥的长度为2048
openssl genrsa -out rsa_private_key.pem 2048
第二步:根据私钥生成对应的公钥:下面两个都可以
1: openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
2: openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key_2048.pub
第三步:私钥转化成pkcs8格式,尖括号的意思是:将转化好的私钥写到rsa_private_key_pkcs8.pem文件里
openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt > rsa_private_key_pkcs8.pem
注意:第三步是必须的,我开始直接使用第一步生成的私钥,java老是给我报错,至于是什么错,可以自己去试试
注意2:生成的文件不能直接用,需要删除头和尾巴,也就是删除-----BEGIN PUBLIC KEY-----和-----END PUBLIC KEY-----
我们把这里文件给放在这里:
image.png
好了,现在的问题出来了,我们改如何获取这些文件呢?
错误的方法1:
public static String readResourceKey(String fileName) {
String key = null;
try {
Resource resource = new ClassPathResource(fileName);
File file = resource.getFile();
L