# JWT加解密公私钥更新
TDP_SYS_APPLICATION_JWK
表中的公私钥用于加解密用户登录凭证,为保护数据安全,建议不同的环境使用不同的公私钥。
1、修改代码中的keyId,执行生成新的公私钥
import java.nio.charset.StandardCharsets;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.util.Base64;
public class Test {
public static void main(String[] args) throws NoSuchAlgorithmException {
//TODO 设置48位keyId
String keyId = "oh1d_r_3a71aq1=x17pb8i7_r$u$uyrkvc594s9v2=mady7e";
if (keyId.length() != 48) {
System.err.println("keyId长度错误,应为48位");
System.exit(1);
}
KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA");
SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
random.setSeed(keyId.getBytes(StandardCharsets.UTF_8));
keyPairGen.initialize(2048, random);
KeyPair keyPair = keyPairGen.generateKeyPair();
String publicKey = Base64.getEncoder().encodeToString(keyPair.getPublic().getEncoded());
String privateKey = Base64.getEncoder().encodeToString(keyPair.getPrivate().getEncoded());
System.out.println("KEY_ID: " + keyId);
System.out.println("PUBLIC_KEY: " + publicKey);
System.out.println("PRIVATE_KEY: " + privateKey);
}
}
2、按照输出结果更新TDP_SYS_APPLICATION_JWK
表中的KEY_ID
、PUBLIC_KEY
、PRIVATE_KEY
数据
3、重启程序
← 数据库密码加密