java pfx加密_.pfx证书 .cer证书MD5withRSA加密
前言:最近接了一个支付平台,提供了.pfx私钥文件以及.cer公钥文件,对于不常用的加密技术的人来说一头雾水。
代码:
public static String sign(String pfxFile, String pfxPwd, String str, String signature, String coding) {
try {
//获取pfx文件的prikey
Security.addProvider(new BouncyCastleProvider());
KeyStore e = KeyStore.getInstance("PKCS12", "BC");
FileInputStream fis = new FileInputStream(pfxFile);
e.load(fis, pfxPwd.toCharArray());
Enumeration aliases = e.aliases();
String keyAlias = null;
PrivateKey priKey = null;
if (aliases != null) {
while (aliases.hasMoreElements()) {
keyAlias = (String) aliases.nextElement();
priKey = (PrivateKey) e.getKey(keyAlias, pfxPwd.toCharArray());
if (priKey != null) {
break;
}
}
}
//使用Signature加密
Signature signet = Signature.getInstance(signature);
signet.initSign(priKey);
signet.update(str.getBytes(coding));
byte[] signed = signet.sign();
String strSign = new String(Base64.encode(signed));
return strSign;
} catch (Exception ex) {
System.out.println(ex);
}
return null;
}
调用:
System.out.println(sign("C://xxx.pfx","123456","123","MD5withRSA","UTF-8"));
cer公钥代码:
//通过cer文件获取到publickey
String e ="c://xxx.cer";
logger.debug("公钥证书路径:" + e);
FileInputStream in = new FileInputStream(e);
CertificateFactory cf = CertificateFactory.getInstance("X.509");
Certificate cac = cf.generateCertificate(in);
PublicKey pubKey = cac.getPublicKey();
in.close();
//通过pubkey加密
Signature signetcheck = Signature.getInstance("MD5withRSA");
signetcheck.initVerify(pubKey);
signetcheck.update(Base64.decode(msg));
//验证是否一样
if (!signetcheck.verify(Base64.decode(check))) {
throw new 异常("Verify Signature Error");
}
java pfx加密_.pfx证书 .cer证书MD5withRSA加密相关推荐
- 配置加密_数据库密码配置项都不加密?心也太大了!
先看一份典型的配置文件 ... 省略 ... ## 配置MySQL数据库连接spring.datasource.driver-class-name=com.mysql.jdbc.Driversprin ...
- mysql5.7.16 表空间加密_技术分享 | InnoDB 表空间加密
本文目录: 一.表空间加密概述 应⽤场景 加密插件 加密限制 注意事项 二.加密表空间 安装加密插件 配置表空间加密 查看表空间被加密的表 三.更新 master encryption key 四.导 ...
- java调用微信加密_微信登录授权, 并且解密加密内容获取手机号和地区
所使用的的依赖 org.springframework.boot spring-boot-starter-web 2.3.7.RELEASE org.apache.httpcomponents htt ...
- java视频切片_使用ffmpeg视频切片并加密和视频AES-128加密后播放
创建加密文件:将一个mp4视频文件切割为多个ts片段,并在切割过程中对每一个片段使用AES-128 加密,最后生成一个m3u8的视频索引文件: 1.加密用的key(文件则保存当前目录) 指令:open ...
- 数据存储加密和传输加密_将时间存储网络应用于加密预测
数据存储加密和传输加密 I'm not going to string you along until the end, dear reader, and say "Didn't achie ...
- ubuntu取消主目录加密_如何在Ubuntu上恢复加密的主目录
ubuntu取消主目录加密 Access an encrypted home directory when you're not logged in – say, from a live CD – a ...
- mysql实现内容加密_简单为mysql 实现透明加密方法
一般用户在数据库中保存数据,虽然数据库存储的是二进制,无法直接明文打开查看,但是如果是一个外行人,直接连接进入mysql中,还是可以直接查看数据的. 所以对于一些核心数据,特别是企业重要数据资产,一般 ...
- js对本地文件进行加密_怎么对电脑文件进行加密
怎么保护电脑文件安全 禁止修改计算机文件内容?如何保护计算机电脑文件的安全,防止电脑文件被意外修改呢?背景电脑中的重要文件,甚至是局域网共享的文件夹,我们有必要保护其电脑文件的完整性,防止被恶意修改, ...
- .pfx 证书和 .cer 证书
证书系列: 1:.pfx 证书和 .cer 证书 2:导入pfx证书 通常情况下,作为文件形式存在的证书一般有三种格式: 第一种:带有私钥的证书,由Public Key Cryptography St ...
- C# 证书 .cer, .pfx 创建,加解密 导出为 Base64编码文件
RSA加密解密:私钥解密,公钥加密. 使用的命名空间: using System.Security.Cryptography; using System.Security.Cryptography ...
最新文章
- MySQL体系结构之物理文件
- Python Numpy介绍
- Bitmap转圆形图片Bitmap
- 白沙工业园新松机器人_常州中智永浩助推机器人行业高质发展 打造机器人领域新优势...
- 10.14 ssh:安全地远程登录主机
- Java黑皮书课后题第5章:5.13(求满足n的三次方<12000的n的最大值)使用while循环找出满足n的三次方<12000的n的最大值
- 这是对R的误解!R的应用原来这么广!
- hdu3666-THE MATRIX PROBLEM【差分约束,自然对数】
- ++实现 ipv6数据报_IPV6报文格式和IPV4有什么区别?
- 程序员伪装 AI 编程,竟骗来 2 亿的投资!
- 无限极分类php简单,创建无限极分类树型结构的简单方法
- 1432: 【蓝桥杯】:剪格子(迷宫问题变体)
- MBR、主引导扇区,主分区、扩展分区、逻辑分区,活动分区、引导分区、系统分区、启动分区的区别详解
- 使用VLC Media Player 在Mac上修剪视频
- android 转发朋友圈,微信怎么转发朋友圈 转发朋友圈方法详细教程
- 名人名言页面的效果图HTML,名人名言书签制作方法图片
- idea彩虹括号+区域代码高亮插件
- linux安全审计和加固工具-lynis
- python身份证号码共18位_18位身份证校验
- python redis连接_Python连接Redis连接配置