资源简介
NULL
博文链接:https://ye-liang.iteye.com/blog/2002980
代码片段和文件信息
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.Signature;
import java.security.SignatureException;
import java.security.UnrecoverableKeyException;
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import org.apache.commons.codec.DecoderException;
import org.apache.commons.codec.binary.Hex;
public class CertificateUtil {
/**
* 从密钥库得到私钥
* @param keyStorePath
* @param alias
* @param password
* @return
*/
public static PrivateKey getPrivateKeyByKeystore(String keyStorePath String alias String password){
try {
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
FileInputStream is = new FileInputStream(keyStorePath);
ks.load(is password.toCharArray());
is.close();
return (PrivateKey)ks.getKey(alias password.toCharArray());
} catch (KeyStoreException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (CertificateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (UnrecoverableKeyException e) {
e.printStackTrace();
}
return null;
}
/**
* 从证书得到公钥
* @param certificatePath
* @return
*/
public static PublicKey getPublicKeyByCertificate(String certificatePath){
try {
CertificateFactory certificateFactory = CertificateFactory.getInstance(“X.509“);
FileInputStream is = new FileInputStream(certificatePath);
Certificate certificate = certificateFactory.generateCertificate(is);
is.close();
return certificate.getPublicKey();
} catch (CertificateException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 私钥加解密
* @param data
* @param privateKey
* @param mode
* 0-加密,1-解密
* @return
*/
public static String codeByPrivateKey(String data PrivateKey privateKey int mode){
try {
Cipher cipher = Cipher.getInstance(privateKey.getAlgorithm());
if (mode == 0) {
cipher.init(Cipher.ENCRYPT_MODE privateKey);
} else {
cipher.init(Cipher.DECRYPT_MODE privateKey);
}
return Hex.encodeHexString(cipher.doFinal(Hex.decodeHex(data
.toCharArray())));
} catch (NoSuchAlgorithmExcepti
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 8033 2014-01-12 19:43 CertificateUtil.java
----------- --------- ---------- ----- ----
8033 1
相关资源
- 物流管理系统源码(含数据库)5624
- jsp模拟酷狗官网源码(附数据库)
- 一个完整的点餐微信小程序(附后台
- 基于 struts 的学生寝室管理系统的设计
- 煤矿安全管理系统(jsp源码+数据库脚
- Java快速开发平台源码(renren-fast)
- 基于JSP实现的美食餐饮管理系统(源
- 尚硅谷书城源码(仅附html页面)
- 都市供求信息网(源码+数据库+文档)
- 图书管理系统(源码+数据库+截图)
- 学生信息管理系统源码+mysql数据库
- javaweb网上购物系统源码(附数据库脚
- jsp+servlet+jdbc开发学生信息后台管理系
- JSP选课系统(源码+文档+数据库)
- 基于JSP的超市销售管理系统(源码+
- jsp宠物商店(源码+数据库)
- 毕业设计-医院人事管理系统(源码
- Vue + SpringBoot + MyBatis 音乐网站(源码
- jsp进销存管理系统(源码+数据库+文档
- 安全测试工具ysoserial
- 基于JAVA_JSP电子书系统(源码+数据库
- JSP考试网上报名考试系统(源码+数据
- 一站式Java网络编程 BIO-NIO-AIO资料源码
- Java 仿QQ(附客户端以及服务端源码)
- java swing工资管理系统(源码+数据库
- Android代码-多功能拨号盘源码.zip
- jdk和cglib动态代理的{jar包+源码}
- 顺丰丰桥接口开发详细教程源码含下
- JSP购物网站完整源码包含项目源码,
- android RDP远程桌面客户端源码
评论
共有 条评论