资源简介
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
相关资源
- java 毕业设计 进销存管理系统 源码
- Android手机工具ADB.exe
- java图片浏览器跨平台运行程序与源码
- 微博系统(Java源码,servlet+jsp),适
- 美食天下项目Android版源码和Web版源码
- 基于Java的酒店管理系统源码(毕业设
- Android分区工具包
- u-blox_Android_GNSS_Driver_v3.10驱动源码+中
- 个人根据Android移动开发案例详解手写
- 基于JSP的学生宿舍管理系统(源码 数
- mysql jsp网站源码下载
- java access 仓库管理系统 源码
- java实现的svn统计修改代码行数完整源
- 即时通讯系统JAVA源码
- Java记事本【源代码 实验报告】
- java简单的购物车实例程序
- Java版航空订票系统源码
- java GUI版汉诺塔源码
- Android手机连连看游戏源码
- 搜索引擎的研究与实现Java附源码
- java 原创 坦克大战 源码 带有详细注释
- jsp与SQL Server数据库实现的客户注册登
- java实现POS系统源码
- java多人五子棋源码
- JAVA计算器实验报告与源码
- java做的人事档案管理系统
- 贪吃蛇(java 源码 eclipse项目)
- 自动出题系统(java 课程设计)
- java制作360度全景页面的源码和脚本
- 进制转换器(java)
评论
共有 条评论