你的問(wèn)題是不是"由于無(wú)法驗(yàn)證發(fā)行者,所以windows已經(jīng)阻止此軟件"如要安裝未簽名的activex控件,按如下步驟:1、打開Internet Explorer---菜單欄點(diǎn)“工具”---Internet選項(xiàng)--安全---自定義級(jí)別---安全設(shè)置---“ActiveX控件和插件下”的第5個(gè)“下載未簽名的ActiveX控件”選擇“提示”---確定!刷新您要安裝的頁(yè)面即可(因?yàn)槭褂玫能浖](méi)有通過(guò)微軟的徽標(biāo)認(rèn)證,在SP2中默認(rèn)是不允許安裝這樣的程序的,解決方法為開始-控制面板-系統(tǒng)-硬件。其中在驅(qū)動(dòng)程序項(xiàng)里有有個(gè)“驅(qū)動(dòng)程序簽名”的選項(xiàng),點(diǎn)開后。選第一項(xiàng):忽略—安裝軟件,不用征求我的意見。)2、打開Internet Explorer---菜單欄點(diǎn)“工具”---Internet選項(xiàng)--安全---自定義級(jí)別---把里面所有禁用的全部改為啟用。3、打開Internet Explorer---菜單欄點(diǎn)“工具”---Internet選項(xiàng)---高級(jí)選項(xiàng)里面選擇"允許運(yùn)行和安裝軟件,即使簽名無(wú)效”4、打開Internet Explorer---菜單欄點(diǎn)“工具”---Internet選項(xiàng)--安全---受信任的站點(diǎn)---把該網(wǎng)站添加進(jìn)去(注意把https改為http)

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比南縣網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式南縣網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋南縣地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴。
1)從密鑰庫(kù)中讀取CA的證書
FileInputStream in=new FileInputStream(".keystore");
KeyStore ks=KeyStore.getInstance("JKS");
ks.load(in,storepass.toCharArray());
java.security.cert.Certificate c1=ks.getCertificate("caroot");
(2)從密鑰庫(kù)中讀取CA的私鑰
PrivateKey caprk=(PrivateKey)ks.getKey(alias,cakeypass.toCharArray());
(3)從CA的證書中提取簽發(fā)者的信息
byte[] encod1=c1.getEncoded(); 提取CA證書的編碼
X509CertImpl cimp1=new X509CertImpl(encod1); 用該編碼創(chuàng)建X509CertImpl類型對(duì)象
X509CertInfo cinfo1=(X509CertInfo)cimp1.get(X509CertImpl.NAME+"."+X509CertImpl.INFO); 獲取X509CertInfo對(duì)象
X500Name issuer=(X500Name)cinfo1.get(X509CertInfo.SUBJECT+"."+CertificateIssuerName.DN_NAME); 獲取X509Name類型的簽發(fā)者信息
(4)獲取待簽發(fā)的證書
CertificateFactory cf=CertificateFactory.getInstance("X.509");
FileInputStream in2=new FileInputStream("user.csr");
java.security.cert.Certificate c2=cf.generateCertificate(in);
(5)從待簽發(fā)的證書中提取證書信息
byte [] encod2=c2.getEncoded();
X509CertImpl cimp2=new X509CertImpl(encod2); 用該編碼創(chuàng)建X509CertImpl類型對(duì)象
X509CertInfo cinfo2=(X509CertInfo)cimp2.get(X509CertImpl.NAME+"."+X509CertImpl.INFO); 獲取X509CertInfo對(duì)象
(6)設(shè)置新證書有效期
Date begindate=new Date(); 獲取當(dāng)前時(shí)間
Date enddate=new Date(begindate.getTime()+3000*24*60*60*1000L); 有效期為3000天
CertificateValidity cv=new CertificateValidity(begindate,enddate); 創(chuàng)建對(duì)象
cinfo2.set(X509CertInfo.VALIDITY,cv); 設(shè)置有效期
(7)設(shè)置新證書序列號(hào)
int sn=(int)(begindate.getTime()/1000); 以當(dāng)前時(shí)間為序列號(hào)
CertificateSerialNumber csn=new CertificateSerialNumber(sn);
cinfo2.set(X509CertInfo.SERIAL_NUMBER,csn);
(8)設(shè)置新證書簽發(fā)者
cinfo2.set(X509CertInfo.ISSUER+"."+CertificateIssuerName.DN_NAME,issuer);應(yīng)用第三步的結(jié)果
(9)設(shè)置新證書簽名算法信息
AlgorithmId algorithm=new AlgorithmId(AlgorithmId.md5WithRSAEncryption_oid);
cinfo2.set(CertificateAlgorithmId.NAME+"."+CertificateAlgorithmId.ALGORITHM,algorithm);
(10)創(chuàng)建證書并使用CA的私鑰對(duì)其簽名
X509CertImpl newcert=new X509CertImpl(cinfo2);
newcert.sign(caprk,"MD5WithRSA"); 使用CA私鑰對(duì)其簽名
(11)將新證書寫入密鑰庫(kù)
ks.setCertificateEntry("lf_signed",newcert);
FileOutputStream out=new FileOutputStream("newstore");
ks.store(out,"newpass".toCharArray()); 這里是寫入了新的密鑰庫(kù),也可以使用第七條來(lái)增加條目
PKI 目前使用最多的非對(duì)稱算法是 RSA。對(duì)于基于 RSA 的 PKI 而言,CA 應(yīng)有一對(duì) RSA 的公私鑰對(duì),私鑰是 CA 的生命,嚴(yán)格保密,而公鑰則發(fā)布給使用方。CA 簽發(fā)一張證書的話,主要是使用 CA 的 RSA 私鑰對(duì)證書進(jìn)行簽名,并將簽名結(jié)果保存在證書當(dāng)中。使用者通過(guò) CA 發(fā)布的公鑰來(lái)驗(yàn)證證書中的簽名值,就可以確定該證書是否是由該 CA 簽發(fā)的。自己要做的就是從證書中提取簽名數(shù)據(jù)和用于簽名的原始數(shù)據(jù),再使用 CA 的公鑰驗(yàn)證這個(gè)簽名就可以了。
如果只要判斷有非法的字符(除0-9和Xx外)可用正則表達(dá)式publicstaticvoidmain(String[]args){//TODOcodeapplicationlogichereStrings="2142213weqrwe32";StringregEx="[^0-9Xx]";Patternpat=Pattern.compile(regEx);Matchermat=pat.matcher(s);booleanrs=mat.find();if(rs){System.out.print("有非法字符");}另外,校驗(yàn)身份證號(hào)碼有專門程序的,可直接校驗(yàn)身份證號(hào)是否正確,在自己在網(wǎng)上找下
JSSE是一個(gè)SSL和TLS的純Java實(shí)現(xiàn),通過(guò)JSSE可以很容易地編程實(shí)現(xiàn)對(duì)HTTPS站點(diǎn)的訪問(wèn)。但是,如果該站點(diǎn)的證書未經(jīng)權(quán)威機(jī)構(gòu)的驗(yàn)證,JSSE將拒絕信任該證書從而不能訪問(wèn)HTTPS站點(diǎn)。
樓上答主說(shuō)的其實(shí)沒(méi)錯(cuò),只是描述的不太清楚。比如說(shuō)有兩個(gè)X509Certificate類型的證書對(duì)象caCert和userCert。
//獲取CA根證書中的公鑰
PublicKey publicKey = caCert.getPublicKey();
//使用用戶證書驗(yàn)證根證書的公鑰,如果驗(yàn)證通過(guò)說(shuō)明這個(gè)用戶證書是這個(gè)根證書簽發(fā)的,驗(yàn)證不過(guò)就不是這個(gè)根證書簽發(fā)的。
userCert.verify(publicKey);
網(wǎng)頁(yè)標(biāo)題:java代碼怎么檢驗(yàn)證書,java證書驗(yàn)證
瀏覽路徑:http://chinadenli.net/article7/dsgpsij.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)站營(yíng)銷、網(wǎng)站設(shè)計(jì)、網(wǎng)站維護(hù)、動(dòng)態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)