首页 > 编程 > Java > 正文

java安全架构____读取keystore文件的密钥对和证书信息

2019-11-06 07:15:01
字体:
来源:转载
供稿:网友

//1.keytool工具生成keystore文件

keytool -genkey -alias csdn -keypass 123456 -keyalg RSA -keysize 1024 -validity 3650 -keystore D:/csdn_server.keystore -storepass 888999

//讲文件复制到工程中

//代码段

package com.demo.test;import java.io.FileInputStream;import java.security.KeyStore;import java.security.PRivateKey;import java.security.PublicKey;import java.security.cert.Certificate;import sun.misc.BASE64Decoder;  import sun.misc.BASE64Encoder;  /** * @author Administrator * 使用以下命令生成keystore文件 * alias:别名csdn * keypass:别名密码 123456 * storepass:秘钥库的密码:888999 * keytool -genkey -alias csdn -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore D:/csdn_server.keystore -storepass 888999 */public class TestKeyStore {	public static void main(String[] args) throws Exception {		//读取keystore文件转换为keystore密钥库对象		FileInputStream fis = new FileInputStream("/csdn_server.keystore");		//因为生成证书的类型为JKS 也有其他的格式		KeyStore keyStore = KeyStore.getInstance("JKS");		//该密钥库的密码"888999"		String storepass="888999";		keyStore.load(fis, storepass.toCharArray());		fis.close();		// 从keystore中读取证书和私钥		String alias = "csdn";//别名		String keypass = "123456"; //别名密码		Certificate certificate = keyStore.getCertificate(alias);		//读取公钥对象		PublicKey publicKey = certificate.getPublicKey();		System.out.println("提取的公钥为___:/n"+encodeBase64(publicKey.toString()));		//读取私钥对象		PrivateKey privateKey = (PrivateKey) keyStore.getKey(alias,keypass.toCharArray());		System.out.println("提取的私钥为___:/n"+encodeBase64(privateKey.toString()));	}	// 对字符密码加密      public static String encodeBase64(String str) throws Exception {          // 1.将传递进来的字符串密码 转换为字节数组 放到base64加密工具里 生产出一个加了密的字符串          String base64Str = new BASE64Encoder().encode(str.getBytes("UTF-8"));          return base64Str;      }        // 对密文字符串解密      public static String decodeBase64(String base64Str) throws Exception {          // 根据加了密的字符串 使用base64的解密工具里 获取原来的明文字符串密码          byte[] bytes = new BASE64Decoder().decodeBuffer(base64Str);          String generalStr = new String(bytes, "UTF-8");          return generalStr;      }  	}//运行结果


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表