91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 13KB
    文件類型: .zip
    金幣: 2
    下載: 1 次
    發布日期: 2021-10-06
  • 語言: 其他
  • 標簽: RSA??PKCS#7??

資源簡介

提到PKCS,首先想到的是RSA的證書格式(類似,PKCS8,P12等),最近在和一家俄羅斯支付對接時,對方說加密成PKCS#7格式,當時就懵了,以為對方說錯了,在這塊卡了好幾天,通過查資料,終于找到方法了。確實是PKCS#7加密,看來還是自己懂得太少。現在把方法分享出來,希望對遇到類似問題的朋友有所幫助

資源截圖

代碼片段和文件信息

/*
?*?Copyright?(c)?2017?All?Rights?Reserved
?*/
/*
?*?修訂記錄:
?*?2017/8/24?09:34?創建
?*?
?*/
package?com.fmbank.gw.octopus.util.cryptography.svssign;

import?java.io.BufferedInputStream;
import?java.io.ByteArrayInputStream;
import?java.io.FileInputStream;
import?java.io.IOException;
import?java.security.DigestInputStream;
import?java.security.MessageDigest;
import?java.security.NoSuchAlgorithmException;
import?java.security.cert.CertificateFactory;
import?java.security.cert.X509Certificate;

import?org.slf4j.Logger;
import?org.slf4j.LoggerFactory;

import?sun.misc.base64Decoder;
import?sun.misc.base64Encoder;
import?sun.security.pkcs.PKCS7;

/**
?*?簽名驗簽基礎類
?*
?*?@filename?Svsbase.java
?*
?*?@version?1.0
?*
?*?@author?ruofei?
?*
?*?@since?2017/8/24
?*/
public?class?Svsbase?{

private?static?final?Logger?logger?=?LoggerFactory.getLogger(Svsbase.class);

/**
?*?簽名算法,默認RSA,可通過setCryptAlg()方法設置
?*/
private?String?cryptAlg?=?“RSA“;

/**
?*?摘要算法,默認SHA1,可通過setDigestAlg()方法設置
?*/
private?String?digestAlg?=?“SHA1“;

protected?X509Certificate?signCert;
protected?X509CertChecker?certChecker;

public?Svsbase()?{
}

/**
?*?初始化證書
?*?@param?fileName?證書路徑
?*?@throws?Exception
?*/
public?void?initSignCertFile(String?fileName)?throws?Exception?{
this.signCert?=?null;
FileInputStream?fin?=?null;
BufferedInputStream?bin?=?null;
try{
fin=?new?FileInputStream(fileName);
bin?=?new?BufferedInputStream(fin);
CertificateFactory?cf?=?CertificateFactory.getInstance(“X.509“);
if(bin.available()?>?0)?{
this.signCert?=?(X509Certificate)cf.generateCertificate(bin);
}
}finally{
try{
if(bin!=null){
bin.close();
}
}catch(Exception?ex){
logger.info(““ex);
}
try{
if(fin!=null){
fin.close();
}
}catch(Exception?ex){
logger.info(““ex);
}
}
}

public?void?initSignCert(String?szB64Cert)?throws?Exception?{
ByteArrayInputStream?bin?=?new?ByteArrayInputStream(base64Decode(szB64Cert));
CertificateFactory?cf?=?CertificateFactory.getInstance(“X.509“);
if(bin.available()?>?0)?{
this.signCert?=?(X509Certificate)cf.generateCertificate(bin);
}

}

public?void?initSignCert(X509Certificate?cert)?{
this.signCert?=?cert;
}

public?X509Certificate?getSignCert()?{
return?this.signCert;
}

public?String?getEncodedSignCert()?throws?Exception?{
return?base64Encode(this.signCert.getEncoded());
}

public?void?setCertChecker(X509CertChecker?checker)?{
this.certChecker?=?checker;
}

public?X509CertChecker?getCertChecker()?{
return?this.certChecker;
}

public?int?checkSignCert()?{
return?X509CertChecker.checkCertValidity(this.signCert);
}

public?int?checkSignCert(X509Certificate?issuerCert)?{
if(issuerCert?==?null)?{
return?-1;
}?else?{
int?nret?=?X509CertChecker.checkCertValidity(this.signCert);
return?nret?!=?0?nret:?X509CertCheck

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????10752??2018-12-26?15:32??RSA的PKCS#7加解密驗簽\OpenSSL生成加密證書.doc
?????文件????????5800??2018-07-20?15:55??RSA的PKCS#7加解密驗簽\Svsbase.java
?????文件????????6382??2018-07-20?15:55??RSA的PKCS#7加解密驗簽\SvsSign.java
?????文件?????????626??2018-09-13?16:50??RSA的PKCS#7加解密驗簽\SvsSignExample.java
?????文件????????9647??2018-07-20?15:55??RSA的PKCS#7加解密驗簽\SvsVerify.java
?????文件????????5640??2018-07-20?15:55??RSA的PKCS#7加解密驗簽\X509CertChecker.java
?????文件?????????140??2018-12-26?15:32??RSA的PKCS#7加解密驗簽\read?me.txt
?????目錄???????????0??2018-12-26?15:32??RSA的PKCS#7加解密驗簽\

評論

共有 條評論