java 证书的加密与解密

证书,加密的相关知识可以参考阮一峰的密码学笔记和数字签名是什么 

 

代码中使用的demo.p12使用jdk自带的keytool证书生成,私钥密码为123456

    

import java.io.FileInputStream;
import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.cert.Certificate;
import java.util.Enumeration;

import javax.crypto.Cipher;

public class ReadP12Cert {
	@SuppressWarnings("unchecked")
	public static void main(String[] args) {
		final String KEYSTORE_FILE = "demo.p12";
		final String KEYSTORE_PASSWORD = "123456";
		try {
			KeyStore ks = KeyStore.getInstance("PKCS12");
			FileInputStream fis = new FileInputStream(KEYSTORE_FILE);
			char[] nPassword = null;
			if ((KEYSTORE_PASSWORD == null)|| KEYSTORE_PASSWORD.trim().equals("")) {
				nPassword = null;
			} else {
				nPassword = KEYSTORE_PASSWORD.toCharArray();
			}
			ks.load(fis, nPassword);
			fis.close();
			System.out.println("keystore type = " + ks.getType());
			Enumeration enuml = ks.aliases();
			String keyAlias = null;
			if (enuml.hasMoreElements()) {
				keyAlias = (String) enuml.nextElement();
				System.out.println("alias=[" + keyAlias + "]");
			}
			System.out.println("is key entry = " + ks.isKeyEntry(keyAlias));
			PrivateKey prikey = (PrivateKey) ks.getKey(keyAlias, nPassword);
			Certificate cert = ks.getCertificate(keyAlias);
			PublicKey pubkey = cert.getPublicKey();

			byte[] msg = "This is a demo!".getBytes("UTF8"); // 待加解密的消息
			Cipher c1 = Cipher.getInstance("RSA/ECB/PKCS1Padding"); // 定义算法:RSA
			c1.init(Cipher.ENCRYPT_MODE, pubkey);
			byte[] msg1 = c1.doFinal(msg); // 加密后的数据
			System.out.println("加密后的数据----"+new String(msg1, "UTF8"));
			Cipher c2 = Cipher.getInstance("RSA/ECB/PKCS1Padding");
			c2.init(Cipher.DECRYPT_MODE, prikey);
			byte[] msg2 = c2.doFinal(msg1); // 解密后的数据
			// 打印解密字符串
			System.out.println("解密后的数据----"+new String(msg2, "UTF8")); // 将解密数据转为字符串
			System.out.println(prikey.toString());
			System.out.println(pubkey.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

 

java 证书 加密 解密 NULL 博文链接:https://philip01.iteye.com/blog/659749 立即下载

相关推荐

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

学习RSA算法,读取数字证书中的私钥对文件进行加密,使用数字证书的公钥解密,这种方式就是RSA算法.

RSA PKCS1私钥解密(JAVA实现)

在开始编码前,你需要根据你的JAVA版本下载2个JAR文件 Bouncycastle的主JAR包 bcprov-jdk15on-164.jar 和OPENSSL相关JAR包 bcpkix-jdk15on-164.jar 官网 https://www.bouncycastle.org/java.html private String decryptRSA(String str, String pri...

xiaobai___111的博客 1万+

JAVA使用数字证书加密文件

java rsa证书加密,crt、pem、pfx、cer等 内附工具

java加密解密与数字证书的操作

1 Java程序实现密钥库的维护 1.1 Java程序列出密钥库所有条目 import java.util.*; import java.io.*; import java.security.*; public class ShowAlias{ public static void main(String args[ ]) throws Exception{ ...

天行健,君子以自强不息;地势坤,君子以厚德载物。 773

避坑指南:STM32H7不同DMA控制器(MDMA/DMA2D/BDMA)到底该用哪个?

本文深入解析STM32H7系列芯片的DMA控制器选型策略,涵盖MDMA、DMA2D、BDMA等不同控制器的架构原理与性能对比。通过实际项目案例,提供高速TCM数据搬运、GUI加速、低功耗传输等场景的选型决策树,并分享性能优化与调试技巧,帮助工程师避开常见陷阱,提升系统效率。

weixin_26876073的博客 447

HDMI2.1/eDP TX接口设计:

HDMI2.1向下兼容,HDMI2.1工作在FRL模式,HDMI2.0工作在TMDS模式。因此采用AC耦合电压模式驱动器。一般采用220nF,封装建议0201。,但是协议要求,往 CEC 管脚通过 27K 电阻加 3.3V 电压,漏电不允许超过。NOTE:如果只需要支持 HDMI2.0 及以下模式时, MOS管也不能省掉。DDC_SCL/DDC_SDA 协议规定是。HDMI2.0模式:配置为高,MOS导通。HDMI2.1模式:配置为低,MOS不导通。,必须增加电平转换电路。形成直流偏置,大约3V。

qq_40010777的博客 7857

pkcs1解密 springboot_Java SecretKey类代码示例

本文整理汇总了Java中javax.crypto.SecretKey类的典型用法代码示例。如果您正苦于以下问题:Java SecretKey类的具体用法?Java SecretKey怎么用?Java SecretKey使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。SecretKey类属于javax.crypto包,在下文中一共展示了SecretKey类的38个代码示例,这些例...

weixin_39780260的博客 600

C#实战:如何用Bartender 10.1实现动态打印与批量打印(附完整源码)

本文深入探讨了如何在C#项目中高效集成Bartender 10.1,实现企业级的动态打印与批量打印功能。文章提供了从环境配置、COM接口精讲、高可用打印服务类封装,到批量打印性能优化及生产环境部署的全套实战方案与源码,帮助开发者构建健壮、可维护的打印解决方案。

weixin_29290963的博客 436

pkcs1解密 springboot_企业微信会话存档消息解密(Java RSA PKCS1解密)

https://www.cnblogs.com/eleclsc/p/12082000.html转:https://www.cnblogs.com/zengsf/p/10136886.html在linux环境中生成公私钥:openssl然后生成私钥:genrsa -out app_private_key.pem 2048 # 私钥的生成在利用私钥生成公钥:rsa -in app_private_ke...

weixin_39669147的博客 1224

UE4免费资产库新玩法:Quixel Bridge插件安装与Megascans资源导入全攻略

本文详细介绍了如何在UE4中安装Quixel Bridge插件并导入Megascans资源,帮助开发者快速获取高质量3D资产。通过分步教程和实用技巧,提升游戏或影视场景的制作效率,特别适合需要真实感环境的项目。

weixin_27729671的博客 365

Linux系统之部署经典魔塔小游戏

Linux系统之部署经典魔塔小游戏

jks212454的博客 1817

[企业微信会话存档]RSA PKCS1私钥解密获取加密消息(JAVA实现)

获取企业微信会话存档内容需要使用RSA PKCS1算法和私钥对str1进行解密 在开始编码前,你需要根据你的JAVA版本下载2个JAR文件 Bouncycastle的主JAR包 bcprov-jdk15on-164.jar 和OPENSSL相关JAR包 bcpkix-jdk15on-164.jar 官网 https://www.bouncycastle.org/java.html maven导入: <dependency> <groupId>org.bouncycastl.

weixin_43303530的博客 3341

SAP ABAP Append structure 介绍

所有在 append structure 上增强的字段都是 append structure 的一部分,这意味着对这些增强所做的任何更改仅仅施加在 append structure 上,而不会影响被增强的 ABAP DDIC 结构。这同样适用于 transport. 激活数据库表或结构时,会找到所有关联的 append structure,并将它们的组件附加到数据库表或结构。Append structure(附加结构)是 ABAP 字典中附加到另一个结构或数据库表并将其组件附加到它们的结构。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1165

Openssl生成RSA证书,Java实现公钥证书加密,私钥证书解密

1、证书生成过程 生成RSA私钥: genrsa -out private_key.pem 1024 把RSA私钥转换成PKCS8格式 pkcs8 -topk8 -inform PEM -in private_key.pem -outform PEM –nocrypt 生成RSA公钥 rsa -in private_key.pem -pubout -out rsa_public_key...

Ron.Zheng 2474

YOLO26优化:注意力魔改 | EMA:基于跨空间学习的高效多尺度注意力,效果优于ECA、CBAM、CA

加入EMA注意力,一种基于跨空间学习的高效多尺度注意力,效果优于ECA、CBAM、CA等经典注意力。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 334

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

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.CertificateF...

weixin_35515918的博客 949

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

java pfx加密_基于pfx证书文件的加解密工具类

import java.io.FileInputStream;import java.security.KeyStore;import java.security.PrivateKey;import java.security.PublicKey;import javax.crypto.Cipher;import org.apache.commons.io.IOUtils;import org.s...

weixin_42497828的博客 913

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

JAVA加密解密之数字证书

系统之间在进行交互的时候,我们经常会用到数字证书,数字证书可以帮我们验证身份等。

蒋固金(jianggujin)的专栏 6888

java 公钥证书加密_加解密 生成 X.509格式,DER编码,后缀名.cer。加密公钥证书...

参考理解关于keyGenerator,KeyPairGenerator,SecretKeyFactory的解析Java加密的常用的加密算法类型有三种1单向加密:也就是不可逆的加密,例如MD5,SHA,HMAC2对称加密:也就是加密方和解密方利用同一个秘钥对数据进行加密和解密,例如DES,PBE等等3非对称加密:非对称加密分为公钥和秘钥,二者是非对称的,例如用私钥加密的内容需要使用公钥来解密,使用公...

weixin_35960434的博客 1853

Java加密与解密的艺术~数字证书~证书使用keytool

证书使用

小强快跑~~ 1735

Java加密解密与数字证书的操作

1 keytool命令总结 一、创建数字证书 交互模式 使用默认的密钥库.keystore(目录是c: Documents and Setting用户名)和算法(DSA) keytool -genkey 默认的别名mykey 密钥库中可以存放多个条目(公钥/私钥对和证书),它们在密钥库中以别名(alias)区分。 [plain] view

m丶大雄 3362

java数字证书对文件/加密/解密/签名/校验签名_Java数字证书对文件/加密/解密/签名/校验签名...

CertificateUtils.javaimport java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStr...

weixin_33614878的博客 332

hls解密key获取失败_Java非对称加密算法RSA通过证书加解密

非对称加密的介绍请查看这篇文章Java加密与解密之非对称加密RSA直接进入正题:1、生成密钥库keytool -genkeypair -keysize 2048 -keyalg RSA -alias test -dname "cn=test,ou=test,o=test,l=wlmq,st=xj,c=tk" -keypass 123123 -storepass 123123 -keystore t...

weixin_39738251的博客 1103

Java加密与解密的艺术~数字证书~证书使用openssl

证书工具 /** * 2009-5-20 */ package org.zlex.chapter10_2; import java.io.FileInputStream; import java.security.KeyStore; import java.security.PrivateKey; import java.security.PublicKey; import java.security.Signature; import java.security.cert.Certificate

小强快跑~~ 300

Java数字证书对文件/加密/解密/签名/校验签名

本文中的Base64Utils.java在其他随笔中已经贴出。Java证书生成命令如下,不做过多解释,可先到网上查询下资料,本文仅提供工具类代码:  把生成的密钥库和证书都放到类的同包下。   keytool -validity 365 -genkey -v -alias www.asdc.com.cn -keyalg RSA -keystore D:\key\asdc.keystore -d...

iteye_13543的博客 219
上一篇: Google Guava处理null
下一篇: CSS 浮动与清除
「已注销」
博客等级 码龄16年 3粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值