# 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_IDPUBLIC_KEYPRIVATE_KEY数据

3、重启程序

Last Updated: 12/29/2023, 3:18:35 PM