jks文件生成和验证

生成

命令行执行

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

口令输入123456,其他直接回车,确认填写“是”
jks文件生成和验证_第1张图片

验证

把生成的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 [email protected]
 *
 */

@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();

	}

}

你可能感兴趣的:(jks文件生成和验证)