java 公钥证书加密,JAVA:安全证书 公钥加密,私钥解密示例程序

import java.io.FileInputStream;

import java.security.KeyStore;

import java.security.PrivateKey;

import java.security.PublicKey;

import java.security.cert.Certificate;

import java.security.cert.CertificateFactory;

import javax.crypto.Cipher;

// 公钥加密,私钥解密示例程序

public class A {

public static void main(String[] args) throws Exception {

// 前提:JDK已安装且正确配置环境变量

// 首先在C盘建立目录 MyKeyStore,用来存放证书库以及导出的证书文件,然后在命令行执行下列2句

// 下句含义:在当前目录创建 TestStore 密钥库,库密码 aaaaaa ,创建证书 TestKey2 :非对称密钥,RSA 算法,key密码为 bbbbbb ,存于 TestStore

// C:\MyKeyStore > keytool -genkey -alias TestKey2 -dname "CN=test222" -keyalg RSA -keystore TestStore -storepass aaaaaa -keypass bbbbbb

// 下句含义:将 TestStore 库中的 TestKey2 导出为证书文件 TestKey2.cer ,这里可能需要将 export 修改为 exportcert

// C:\MyKeyStore > keytool -export -alias TestKey2 -file TestKey2.cer -keystore TestStore -storepass aaaaaa

// 证书库证书保存证书的公私钥,导出的证书文件只携带公钥

byte[] msg = "犯大汉天威者,虽远必诛!".getBytes("UTF8");     // 待加解密的消息

// 用证书的公钥加密

CertificateFactory cff = CertificateFactory.getInstance("X.509");

FileInputStream fis1 = new FileInputStream("C:\\MyKeyStore\\TestKey2.cer"); // 证书文件

Certificate cf = cff.generateCertificate(fis1);

PublicKey pk1 = cf.getPublicKey();           // 得到证书文件携带的公钥

Cipher c1 = Cipher.getInstance("RSA/ECB/PKCS1Padding");      // 定义算法:RSA

c1.init(Cipher.ENCRYPT_MODE, pk1);

byte[] msg1 = c1.doFinal(msg);    &nbs

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值