`
xwhoyeah
  • 浏览: 91636 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

使用java从证书中读取私钥

阅读更多
读取公钥可以使用JAVA本身的类即可。
读取私钥可以使用http://www.bouncycastle.org提供的类。


import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.security.InvalidKeyException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.PrivateKey;
import java.security.SignatureException;
import java.security.UnrecoverableKeyException;
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
import java.security.cert.CertificateFactory;

public class KeyReader {

	public static void main(String[] args) throws KeyStoreException,
			NoSuchProviderException, NoSuchAlgorithmException,
			CertificateException, IOException, UnrecoverableKeyException,
			InvalidKeyException, SignatureException {

		// Open an input stream on the keystore file
		String cerFileName = "d:/certA.cer";
		String p12FileName = "d:/certA.p12";
		String pfxPassword = "openssl";

		InputStream fis = new FileInputStream(p12FileName);

		// Create a keystore object
		KeyStore keyStore = KeyStore.getInstance("PKCS12", "BC");
		// Load the file into the keystore
		keyStore.load(fis, pfxPassword.toCharArray());

		String aliaesName = "abcd";
		PrivateKey priKey = (PrivateKey) (keyStore.getKey(aliaesName, null));
		System.out.println("private key:\n" + priKey);

		// public key
		InputStream is = new FileInputStream(cerFileName);
		CertificateFactory cf = CertificateFactory.getInstance("x509");
		Certificate cerCert = cf.generateCertificate(is);
		System.out.println("public key:\n" + cerCert);
	}
}
分享到:
评论

相关推荐

    获取RSA公钥+私钥

    在Java中,我们可以使用Java Cryptography Extension (JCE) 库来生成和操作RSA密钥对,包括公钥和私钥。 生成RSA公钥和私钥的基本步骤如下: 1. **创建KeyPairGenerator对象**:首先,我们需要创建一个...

    java获取数字证书信息

    在本篇文章中,我们将深入探讨如何使用Java来获取数字证书的信息,包括使用TOMCAT和JDK搭建SSL服务的过程、如何用OpenSSL签发证书以及如何支持第三方CA等内容。 #### 一、使用TOMCAT和JDK搭建SSL服务 ##### 1. ...

    java实现读取证书访问https接口

    当需要从一个HTTPS服务器获取数据时,尤其是涉及敏感信息时,Java应用程序可能需要读取和信任特定的SSL证书来建立安全连接。本篇将深入探讨如何在Java中实现这一过程,重点关注读取不同格式的证书(如cer、der、crt...

    通过RSA证书提取XML/PEM公钥私钥

    在本场景中,我们关注的是如何从RSA.PFX证书中提取XML或PEM格式的公钥和私钥。 PFX(Personal Information Exchange)文件是微软定义的一种证书存储格式,它包含了用户的数字证书和相应的私钥,通常用于跨平台的...

    Java生成的国密cer证书

    国密算法是我国自主研发创新的一套数据加密处理系列算法,很多项目都在用了,所以用Java代码生成的基于国密算法签发的sm2 证书,放到资源里面方便大家下载使用。

    JAVA 使用数字证书加密解密文件

    在Java中,我们可以使用Java Cryptography Extension (JCE)框架来处理RSA密钥对和数字证书。JCE提供了丰富的类库,如`KeyPairGenerator`用于生成密钥对,`KeyStore`用于管理数字证书,以及`Cipher`用于加密和解密...

    证书吊销列表CRL解析工具(Java)

    4. **`java.security.cert.CRL`接口**:Java标准库提供了CRL接口,通过`CertificateFactory`的`generateCRL`方法可以从输入流中加载CRL,然后可以调用`getRevokedCertificates`获取被撤销的证书列表。 5. **证书链...

    国密算法SM2公私钥加解密及签名验签以及前端js sm-crypto

    本文将详细探讨SM2算法的原理、使用场景,以及在前端js中实现加解密和签名验签的方法,同时参考sm-crypto库的使用。 首先,SM2算法的核心是椭圆曲线加密,它利用椭圆曲线上的数学性质来构建公钥和私钥。公钥是可以...

    JAVA使用数字证书加密文件

    在给定的场景中,我们将探讨如何使用Java读取PFX(Personal Information Exchange)格式的数字证书,以及如何应用RSA算法来加密和解密文件。 首先,PFX文件是一种包含证书和私钥的安全存储格式,通常用于网络通信和...

    c# RSA读取密钥文件pfx cer 签名验签加密解密工具类 1 包含java形式密钥转换成c# c# 形式密钥转换成java

    C#中同样使用`X509Certificate2`类来读取CER文件。 4. **数字签名**:数字签名是RSA算法的一个应用,用于验证数据的完整性和发送者的身份。在C#中,`RSACryptoServiceProvider`类的`SignData`方法可以用于生成签名...

    java 证书的加密与解密

    Java证书的加密与解密是Java安全领域中的一个重要概念,主要涉及到数字证书、公钥加密、私钥解密以及SSL/TLS协议等知识点。在这个主题中,我们将深入探讨这些概念及其在实际应用中的使用。 首先,Java证书是用于...

    支付宝集成获取私钥与公钥

    在命令行环境中,你可以按照以下步骤使用OpenSSL来生成私钥与公钥: 1. 生成RSA密钥对: 使用`openssl genpkey -algorithm RSA -out private_key.pem`命令生成一个RSA私钥,`private_key.pem`是私钥文件名。 2. ...

    Cert_Info.rar_cert_info_java 数字证书_数字 证书_数字证书_证书

    这个类文件很可能包含了实现数字证书读取功能的Java代码,允许程序在运行时解析和处理cer文件中的信息。 "CertInfo.java"是源代码文件,我们可以从中了解如何在Java中操作数字证书。在Java中,处理数字证书通常涉及...

    java手工读取ejbca证书,并加密与解密操作

    总之,Java 手工读取 EJBCA 证书并进行加解密操作涉及证书的获取、解析、公钥加密和私钥解密,同时要注意证书的安全管理和使用。这些步骤是 PKI 系统中进行安全通信的基础。在实际项目中,应结合具体的业务需求和...

    java生成和解析证书.docx

    在 Java 中,可以使用 java.security.cert 包下的类和方法来生成和解析数字证书。 证书的概念 数字证书是一种电子证书,它包含了公钥、所有者身份信息、颁发者身份信息、有效期限等信息。数字证书可以用于身份验证...

    PKCS11读取UKEY例子

    在PKCS11_Sample中,我们可以看到如何使用上述接口实现对UKEY的读取和操作,例如打开会话、查找私钥对象、进行用户登录、执行签名或加密操作,然后关闭会话。通过分析这个示例代码,我们可以更好地理解PKCS11的工作...

    支付宝获取公钥和私钥工具

    在这个“支付宝获取公钥和私钥工具”中,我们主要会讨论如何使用开源工具`openssl`来生成这些密钥对。 `openssl`是一个强大的安全套接层(SSL)和传输层安全(TLS)协议实现工具,同时也提供了多种加密算法和证书...

    JAVA对数字证书的常用操作

    二、从文件中读取证书: 证书可以从存储在文件中的格式(如PEM或DER)加载。以下是一个例子,展示如何使用`CertificateFactory`读取X.509证书: ```java CertificateFactory cf = CertificateFactory.getInstance(...

    Java数字证书的一些实例

    ### Java数字证书实例详解 #### 一、所需导入的包 ...以上步骤展示了如何在Java中实现数字证书的基本操作,包括从文件或密钥库中读取证书、展示证书信息、更新密钥库密码等。这对于开发安全的网络应用非常有用。

    C# RSA读取密钥文件pfx cer 签名验签加密解密帮助类

    本篇文章将深入探讨如何在C#中使用RSA算法处理pfx和cer密钥文件,进行签名验证、加密和解密,并介绍如何实现C#与Java之间的公钥私钥互转。 首先,`pfx`文件是一种包含证书和私钥的二进制文件,通常用于存储服务器...

Global site tag (gtag.js) - Google Analytics