jks文件生成和验证

生成

命令行执行

keytool -genkey -alias jwt -keyalg RSA -keysize 1024 -keystore jwt.jks -validity 365

口令输入123456,其他直接回车,确认填写“是”
在这里插入图片描述

验证

把生成的jwt.jks拷贝到项目类路径下,编写代码测试

package com.github.qq275860560.common.util;

import java.io.IOException;
import java.io.InputStream;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.UnrecoverableKeyException;
import java.security.cert.CertificateException;

import lombok.extern.slf4j.Slf4j;

/**
 * @author jiangyuanlin@163.com
 *
 */

@Slf4j
public class JksUtil {
	public static void main(String[] args) throws Exception {
		PrivateKey privateKey = getPrivateKey("jwt.jks", "123456", "jwt");
		log.info("" + privateKey);
		PublicKey publicKey = getPublicKey("jwt.jks", "123456", "jwt");
		log.info("" + publicKey);

	}

	private static PrivateKey getPrivateKey(String fileName, String password, String alias) throws KeyStoreException,
			IOException, NoSuchAlgorithmException, CertificateException, UnrecoverableKeyException {
		InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName);

		KeyStore keyStore = KeyStore.getInstance("JKS");
		keyStore.load(inputStream, "123456".toCharArray());

		return (PrivateKey) keyStore.getKey("jwt", "123456".toCharArray());

	}

	private static PublicKey getPublicKey(String fileName, String password, String alias) throws KeyStoreException,
			IOException, NoSuchAlgorithmException, CertificateException, UnrecoverableKeyException {
		InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName);

		KeyStore keyStore = KeyStore.getInstance("JKS");
		keyStore.load(inputStream, "123456".toCharArray());

		return keyStore.getCertificate("jwt").getPublicKey();

	}

}


版权声明:本文为k3108001263原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。