資源簡介
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
評論
共有 條評論