`

java 读取使用keytool生产的keystore文件

    博客分类:
  • Java
阅读更多

windows 环境下,使用keytool 生产keystore文件

keytool -genkeypair -keyalg RSA -keysize 1024 -sigalg SHA1withRSA -validity 36000 -alias www.kunlunsoft.com -storepass abcdefg -keystore zlex.keystore -dname "CN=localhost, OU=zlex,O=zlex, L=BJ, ST=BJ, C=CN"

说明:-keyalg :指定key的加密算法;

-sigalg:指定签名算法;

-storepass:指定key的密码

注意keystore 密码和主密码必须相同

操作结果如下:

 

上述命令会生产一个文件zlex.keystore

keystore文件中既包含公钥,也包含私钥。

使用java 读取zlex.keystore 文件:

用于保存私钥和公钥的bean:

 

package com.common.bean;

import java.io.Serializable;
import java.security.PrivateKey;
import java.security.PublicKey;

/***
 * 
 * @author huangwei
 * @since 2013-10-28
 */
public class PrivPubKeyBean implements Serializable {

	private static final long serialVersionUID = 1888415926054715509L;
	/***
	 * 私钥
	 */
	private PrivateKey privKey;
	/***
	 * 公钥
	 */
	private PublicKey publKey;
	/***
	 * 签名算法
	 */
	private String sigAlgName;
	public PrivateKey getPrivKey() {
		return privKey;
	}
	public void setPrivKey(PrivateKey privKey) {
		this.privKey = privKey;
	}
	public PublicKey getPublKey() {
		return publKey;
	}
	public void setPublKey(PublicKey publKey) {
		this.publKey = publKey;
	}
	public String getSigAlgName() {
		return sigAlgName;
	}
	public void setSigAlgName(String sigAlgName) {
		this.sigAlgName = sigAlgName;
	}
	
	
}

 

 

读取keystore文件获取私钥和公钥:

 

/***
	 * 
	 * @param keyStorePath
	 * @param password
	 * @param alias
	 * @return
	 * @throws Exception
	 */
	public static PrivPubKeyBean getPrivPubKeyBean(String keyStorePath,String password,String alias) throws Exception{
		PrivPubKeyBean privPubKeyBean=new PrivPubKeyBean();
		// 获得密钥库
		KeyStore ks =SystemUtil. getKeyStore(keyStorePath, password);
		// 获得私钥
		PrivateKey privateKey = (PrivateKey) ks.getKey(alias, password.toCharArray());
		privPubKeyBean.setPrivKey(privateKey);
		
		// 获得证书
		X509Certificate x509Certificate = (X509Certificate) ks.getCertificate(alias);
		PublicKey pubKey=x509Certificate.getPublicKey();
		privPubKeyBean.setPublKey(pubKey);
		privPubKeyBean.setSigAlgName(x509Certificate.getSigAlgName());
		return privPubKeyBean;
	}

 

 

测试:

 

@Test
	public void test_03() {
		try {
			String message = "whuang";
			String keyStorePath = "d:\\Temp\\a\\a\\ca\\zlex.keystore";
			String password = "abcdefg";
			String alias = "www.kunlunsoft.com";
			PrivPubKeyBean privPubKeyBean = SystemUtil.getPrivPubKeyBean(
					keyStorePath, password, alias);
			byte[] result = SystemUtil.encrypt(message,
					privPubKeyBean.getPublKey());
			byte[] deResult = SystemUtil.decrypt(result,
					privPubKeyBean.getPrivKey());
			System.out.println(new String(deResult));
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

 运行结果:whuang

 

SystemUtil 见附件,路径:src\main\java\com\common\util\SystemUtil.java

 

  • 大小: 25.1 KB
  • lib.zip (603.7 KB)
  • 下载次数: 53
1
0
分享到:
评论
3 楼 hw1287789687 2015-01-27  
midsummer 写道
楼主,你的附件中的jar文件包是空的,能再编译一遍发我邮箱么?294899637@qq.com

注意:
引用
SystemUtil
  已经改名为SystemHWUtil
2 楼 hw1287789687 2015-01-23  
midsummer 写道
楼主,你的附件中的jar文件包是空的,能再编译一遍发我邮箱么?294899637@qq.com

邮件已发送给你
1 楼 midsummer 2015-01-23  
楼主,你的附件中的jar文件包是空的,能再编译一遍发我邮箱么?294899637@qq.com

相关推荐

    CFCA证书环境Java安装

    2. **解压并导入证书**:解压缩下载的证书链文件,然后使用Java的`keytool`命令行工具将其导入到Java的`cacerts`信任库中。`keytool`是一个用于管理密钥和证书的实用程序,内置于Java Development Kit (JDK)中。 3....

    keystore_export导出密钥工具

    【keystore_export导出密钥工具】是一款基于Java编写的实用程序,专为方便开发者和系统管理员导出由keytool生成的keystore文件中的私钥和证书。keytool是Java SDK自带的一个命令行工具,用于管理数字证书和密钥对,...

    PDF数字签名(ITEXT+keytool)

    在本项目中,我们使用了Java的ITEXT库来处理PDF文档,以及keytool工具来生成数字证书。以下是关于这些知识点的详细说明: 1. **PDF数字签名**:PDF数字签名是一种用于验证PDF文档未经修改的机制。它使用非对称加密...

    keystoke证书转换nginx证书工具

    1. 使用`keytool`从`.keystore`文件中导出公钥证书,生成`.crt`文件。 2. 同样使用`keytool`导出私钥,生成`.key`文件。 3. 可能还需要合并`.key`和`.crt`文件到一个`.pem`文件,以便Nginx能够读取。 4. 对于`.pfx`...

    Java语言实现的md5,rsa算法传送文件

    在文件传输中,发送方可以用接收方的公钥加密文件,确保即使在网络中被截获,也无法直接读取文件内容,只有拥有对应私钥的接收方才能解密。 至于Applet,它是Java的一种小程序,可以直接嵌入到HTML页面中运行。通过...

    java获取数字证书信息

    keytool -import -trustcacerts -alias tomcat -file server.cer -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit ``` ##### 3. 配置server.xml文件 接下来,需要修改TOMCAT中的`server.xml`...

    keystore2pk8.zip|keystore2pk8.zip

    使用Java的KeyStore类和其他加密库,这个JAR文件能够读取`.keystore`,提取私钥并将其转换为PKCS#8格式,同时导出证书为X.509 PEM格式。 `readme.txt`文件很关键,它会提供详细的操作指南和注意事项。例如,如何...

    将密钥/证书导入现有Java密钥存储库的shell脚本

    keytool-importkeypair—将密钥/证书对导入现有Java密钥存储库的shell脚本 安装: 将keytool-importkeypair添加到PATH中 使用: Keytool-importkeypair [-k keystore] [-p storepass] -pk8 pk8 -cert cert -alias ...

    java代码签简单示例.doc

    接下来,我们编写了一个简单的Java程序,如`policyTest.java`,该程序用于读取指定文件。然后通过Eclipse的`Export`功能,将其打包成一个可执行的JAR文件`policyTest.jar`。 为了对这个JAR文件签名,我们需要把它和...

    Android渠道包批量签名(mac版本)

    4. **keytool工具**:Java自带的keytool命令行工具用于生成和管理`.keystore`文件。 批量签名步骤: 1. **生成keystore**:使用keytool生成`.keystore`文件,设置好密钥库密码、别名、密码等信息。 2. **APK签名**...

    在facebook中用到的读取证书hash 值

    2. 使用`keytool -list -v -keystore <path_to_your_keystore_file> -alias <your_key_alias>`命令,替换`<path_to_your_keystore_file>`为你的Keystore文件路径,`<your_key_alias>`为你的密钥别名。 3. 输入...

    android studio 签名问题.doc

    `keytool`是Java开发工具包(JDK)的一部分,通常位于`<JAVA_HOME>/bin`目录下。 3. **重置keystore密码** 执行以下命令,用新的keystore密码替换`[insert new keystore password]`,并用实际的keystore文件路径...

    SignApk-master.zip

    - 示例或模板文件:例如Keystore文件示例,或者配置文件模板,帮助用户了解如何创建和使用自己的签名文件。 理解并掌握如何使用SignApk工具对于Android开发者来说非常重要,尤其是当他们需要对反编译的APK进行调试...

    Java中如何通过https调用Webservice接口_测试环境.rar

    keytool -importcert -file test_nciic.cer -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit ``` - 这会将证书添加到默认的信任存储库,密码通常为`changeit`。 2. **创建SSLSocketFactory*...

    JaVA实例学会数字签名

    在Java中,我们通常使用Java的密钥工具(Keytool)和 jarsigner 工具来完成这一过程。 以下是数字签名的基本步骤: 1. **创建密钥对**:使用Keytool生成一对密钥,包括一个私钥和一个对应的公钥。私钥用于签名,...

    目中的SignApk类是从Android的源码

    1. **证书处理**:包括读取和解析keystore文件,获取私钥和对应的证书,这些通常涉及到Java的`KeyStore`类和相关的密钥管理API。 2. **签名算法**:Android支持多种签名算法,如SHA-1和SHA-256,SignApk类会使用`...

    SignApkV2SignApkV2 签名工具rom签名工具 .zip

    SignApkV2会使用Java的keytool工具来生成或者读取密钥库,然后使用 jarsigner 命令来签署APK。 4. **对APK进行ZIPalign优化**:签名后的APK通常还需要进行ZIPalign优化,以提高应用的性能。这个过程会调整APK中的...

    Java Web之高级应用

    3. **Keytool工具**:Keytool是Java提供的命令行工具,用于管理KeyStore,KeyStore存储私钥、公钥和证书。Keytool可以生成私钥、导入导出证书、修改密码、打印和删除KeyStore中的条目。在配置HTTPS时,通常会用...

    Java 2平台安全技术-结构,API设计和实现

    7.5.4 实例4:读取包含证书的文件 135 7.6 标准名 136 7.6.1 消息摘要算法 136 7.6.2 密钥和参数算法 136 7.6.3 数字签名算法 137 7.6.4 随机数产生算法 137 7.6.5 证书类型 137 7.6.6 密钥库类型 137 7.7 算法 137 ...

    JAVA 2平台安全技术-结构,API设计和实现

    本书首先概述了计算机和网络安全概念并解释了Java安全模型,并在此基础上,详细描述了Java 2平台中新增加的许多安全结构方面的措施,同时对Java安全性的实施提出了使用指导,描绘了如何定制、扩展和精化安全结构以及...

Global site tag (gtag.js) - Google Analytics