- 浏览: 303733 次
- 性别:
- 来自: 重庆
文章分类
- 全部博客 (286)
- 设计模式 (14)
- spring (5)
- 开发工具 (12)
- java (19)
- apache.commons工具 (7)
- ibaits (5)
- extjs4.0 (4)
- 数据库 (2)
- spring工具类 (2)
- jquery1.8 (32)
- 杂记 (1)
- linux (2)
- Quart (1)
- springMVC (2)
- webservice (1)
- oracle (5)
- dwr (6)
- jbmp3 (27)
- lucene3.5 (27)
- javascript (18)
- hibernate3.3.2 (27)
- spring事务管理 (10)
- nio (2)
- strust2 (3)
- jvm (7)
- jquery-easyui-1.2.6 (22)
- 多线程 (14)
- maven (3)
- 常用正则表达式 (4)
最新评论
-
HF_SKY000:
请问:
一、能否提供一下密钥库文件的生成方法?
二、密钥库的密 ...
Java sslSocket 聊天实例
JKS文件是一个java中的密钥管理库,里面可以放各种密钥文件,JKS文件的生成这里暂且不说,这里主要是关注如何从JKS文件中将已有的密钥读取出来。
下面是两个java读取JKS文件中密钥的方法
当然在看懂下面两个方法之前要对JKS文件的结构有所了解:
JKS文件就好像一个仓库,里面可以放很多的东西,这里只存放一类东西就是密钥,仓库当然会有一把锁,防范别人随便乱拿,这个就是JKS文件的密码。里面存放的密钥也各有不同,每个密钥都有一个名字(在下面叫别名),一类就密钥对,一类叫公钥,一类叫私钥,密钥对就是包含公钥和私钥的。这里的公钥只要你能进入仓库你就可以随便查看拿走,私钥则是有密码的,只允许有权限的人查看拿走。所以在下面读取密钥时也就有点细微的不同之处,对于读取公钥只需要知道JKS文件(仓库)的密码就可以了,但是在读取私钥时则必须有私钥的密码也就是你必须要有权限,在下面你会发现,在读取私钥时多了一个参数,对应的就是私钥的密码。
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
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 javax.security.cert.Certificate;
public class JKSTesting {
public static PublicKey getPublicKey(String keyStoreFile,
String storeFilePass, String keyAlias) {
// 读取密钥是所要用到的工具类
KeyStore ks;
// 公钥类所对应的类
PublicKey pubkey = null;
try {
// 得到实例对象
ks = KeyStore.getInstance("JKS");
FileInputStream fin;
try {
// 读取JKS文件
fin = new FileInputStream(keyStoreFile);
try {
// 读取公钥
ks.load(fin, storeFilePass.toCharArray());
java.security.cert.Certificate cert = ks
.getCertificate(keyAlias);
pubkey = cert.getPublicKey();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (CertificateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
} catch (KeyStoreException e) {
e.printStackTrace();
}
return pubkey;
}
/** *//**
* 得到私钥
*
* @param keyStoreFile
* 私钥文件
* @param storeFilePass
* 私钥文件的密码
* @param keyAlias
* 别名
* @param keyAliasPass
* 密码
* @return
*/
public static PrivateKey getPrivateKey(String keyStoreFile,
String storeFilePass, String keyAlias, String keyAliasPass) {
KeyStore ks;
PrivateKey prikey = null;
try {
ks = KeyStore.getInstance("JKS");
FileInputStream fin;
try {
fin = new FileInputStream(keyStoreFile);
try {
try {
ks.load(fin, storeFilePass.toCharArray());
// 先打开文件
prikey = (PrivateKey) ks.getKey(keyAlias, keyAliasPass
.toCharArray());
// 通过别名和密码得到私钥
} catch (UnrecoverableKeyException e) {
e.printStackTrace();
} catch (CertificateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
} catch (KeyStoreException e) {
e.printStackTrace();
}
return prikey;
}
public static void main(String[] args) {
PublicKey publicKey;
PrivateKey privateKey;
publicKey=getPublicKey("C:\\aaa.jks","AAAAAAAA", "ibmwebspheremq");
privateKey=getPrivateKey("C:\\aaa.jks","AAAAAAAA", "ibmwebspheremq","AAAAAAAA");
System.out.println(publicKey.toString());
System.out.println(privateKey.toString());
}
}
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
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 javax.security.cert.Certificate;
public class JKSTesting {
public static PublicKey getPublicKey(String keyStoreFile,
String storeFilePass, String keyAlias) {
// 读取密钥是所要用到的工具类
KeyStore ks;
// 公钥类所对应的类
PublicKey pubkey = null;
try {
// 得到实例对象
ks = KeyStore.getInstance("JKS");
FileInputStream fin;
try {
// 读取JKS文件
fin = new FileInputStream(keyStoreFile);
try {
// 读取公钥
ks.load(fin, storeFilePass.toCharArray());
java.security.cert.Certificate cert = ks
.getCertificate(keyAlias);
pubkey = cert.getPublicKey();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (CertificateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
} catch (KeyStoreException e) {
e.printStackTrace();
}
return pubkey;
}
/** *//**
* 得到私钥
*
* @param keyStoreFile
* 私钥文件
* @param storeFilePass
* 私钥文件的密码
* @param keyAlias
* 别名
* @param keyAliasPass
* 密码
* @return
*/
public static PrivateKey getPrivateKey(String keyStoreFile,
String storeFilePass, String keyAlias, String keyAliasPass) {
KeyStore ks;
PrivateKey prikey = null;
try {
ks = KeyStore.getInstance("JKS");
FileInputStream fin;
try {
fin = new FileInputStream(keyStoreFile);
try {
try {
ks.load(fin, storeFilePass.toCharArray());
// 先打开文件
prikey = (PrivateKey) ks.getKey(keyAlias, keyAliasPass
.toCharArray());
// 通过别名和密码得到私钥
} catch (UnrecoverableKeyException e) {
e.printStackTrace();
} catch (CertificateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
} catch (KeyStoreException e) {
e.printStackTrace();
}
return prikey;
}
public static void main(String[] args) {
PublicKey publicKey;
PrivateKey privateKey;
publicKey=getPublicKey("C:\\aaa.jks","AAAAAAAA", "ibmwebspheremq");
privateKey=getPrivateKey("C:\\aaa.jks","AAAAAAAA", "ibmwebspheremq","AAAAAAAA");
System.out.println(publicKey.toString());
System.out.println(privateKey.toString());
}
}
发表评论
-
http协议 文件下载原理及多线程断点续传
2014-06-18 17:28 1475最近研究了一下关于文件下载的相关内容,觉得还是写些东西记下 ... -
Java安全通信:HTTPS与SSL
2014-04-18 17:37 6131. HTTPS概念 1)简介 ... -
Java KeyStore的类型
2014-04-18 15:05 795JKS和JCEKS是Java密钥库(KeyStore)的两种 ... -
对https的理解
2014-03-20 11:39 1772一、什么是HTTPS在说HTTPS之前先说说什么是HTTP ... -
BigDecimal四舍五入的问题
2013-03-15 10:33 934System.out.println(new BigDec ... -
java正则表达式
2012-08-28 11:34 1090在Sun的Java JDK 1.40版本中 ... -
JAVA中使用FTPClient实现文件上传下载
2012-08-24 15:48 783在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上 ... -
java 数字签名
2012-08-07 11:04 1133发送报文时,发送方用 ... -
Java进行数据加密
2012-06-26 16:41 872本文主要谈一下密码学 ... -
常见加密算法
2012-06-26 16:24 963DES(Data Encryption Standard):对 ... -
消息摘要
2012-06-26 16:22 794消息摘要(Message Digest)又称为数字摘要(D ... -
UML 依赖 关联 聚合 组合
2012-06-25 09:54 1233<1>依赖 依赖关系用虚线加箭头表示,如图所示: ... -
Java sslSocket 聊天实例
2012-06-18 10:46 2031------------------------------- ... -
keytool证书与密钥管理
2012-06-18 10:44 13851)创建服务端密钥库 > ... -
Java ssl socket 双向认证
2012-06-18 10:37 1544总体思路步骤是 1. 分别生成客户端何服务器端 ... -
JAVA String.format 方法使用介绍
2012-06-13 16:51 726JAVA String.format 方法使用 ... -
HttpUrlConnection使用
2011-11-10 17:46 3861下边的总结对我帮助蛮大的~不仅用法了解,整个连接流程也要明 ... -
java i/o
2010-07-16 14:33 808java.io在Java类库中,IO部分的内容是很庞大的,因为 ...
相关推荐
转换jks、p12、pfx等格式文件
jks文件到kdb格式 一般用于ibm http server ssl配置证书文件使用
openssl 生成client.jks与server.jks文件的方法 在做WS安全性设计的时候 利用rampat时候需要使用的jks文件
PKCS12与JKS格式转换器,提供pkcs12文件转换成jks文件,可以选择源文件位置,和转换后文件存储位置。
对密钥,密钥对,公钥,证书,私钥,jks,keystore,truststore,cer,pfx
将jks文件生成pfx文件的工具,亲测可以使用。 例如: 1、利用java自带命令生成密钥: keytool -genkey -v -alias pan2.share888.top -keyalg RSA -keystore d:\local.keystore -validity 36500 2、转换: JKS2PFX ...
由于生成的证书是jks格式,nginx不能直接用,需要要转成PEM格式,这...该命令将server.jks中别名为lgy.com的SSL证书导出,运行后将在jks2pfx的按照目录产生3个文件: exportfile.key、exportfile.crt、exportfile.pfx;
密钥,密钥对,公钥,pfx,jks/https
该命令将server.jks中别名为tomcat的SSL证书导出,运行后将产生3个文件 exportfile.key、exportfile.crt、exportfile.pfx,exportfile.pfx可以导入到微软的IIS中,exportfile.key和exportfile.crt 可用于Apache或者...
CERT Keyfinder是一个实用程序,用于查找和分析文件系统上的密钥文件以及Android APK文件中包含的密钥文件。 CERT Keyfinder开发由美国国土安全部(DHS)赞助。
jks2pfx jks文件生成pfx文件工具
用于Androidstudio模拟器的系统签名,方便进行需要系统签名方面的调试,内含一个生成的platform.jks和系统签名源文件(.pk8和x509.pem等等) ,拿到源文件你也可以自己生成jks或者keystore。 内含jks签名信息: Key ...
javakeytool支持的类型及如何将证书导入jks中.docx
BKS来自BouncyCastleProvider,它使用的也是TripleDES来保护密钥库中的Key,它能够防止证书库被不小心修改(Keystore的keyentry改掉1个bit都会产生错误),BKS能够跟JKS互操作。 JKS和JCEKS是Java密钥库(KeyStore)的...
nginx证书转换jks,将jks文件导出为Nginx所需要的文件.crt和.key
没有积分的用户可以根据以下命令行手动导出(keytool.exe 可以在jdk安装目录中找到): keytool.exe -v -importkeystore -srckeystore "jks文件" -srcstoretype jks -srcstorepass "jks密码" -destkeystore "pfx...
Android签名文件jks和keystore相互装换的cmd命令 里面包含了文件和简单示例
系统签名所需JKS的制作工具,内含各文件和操作指导说明。懂的人会懂,不多说。
初登友盟官网,“【友盟+】全球领先的第三方全域大数据服务提供商。”这句话就醒目地显示在眼前。可以明确的知道,友盟在移动端app开发,确实具备了很大...通过本文,学习在Android Studio中以友盟为例进行多渠道打包。
将weblogic.bat复制到weblogic自己的domain下,运行该bat文件,自动产生SSL所需的密钥文件。.jks .pem .cer文件 1)创建名字为weblogic.jks文件密钥。 别名为weblogic 密码:pssword bat文件中全部的pssword为密码...