数字证书及其简单数字签名的实现
?然而其实这些也是数字证书运用很广泛的地方,可以说,数字证书是整个信息时代网络安全及其有力的一种保障。
?
?
?
?
如果我们点击查看颁发者,如果你连了网络的话,会自动登录到根证书中心,美国的CA证书中心。
?
?
?
?
?
?
?
?
?
?
?
?
?下面我们打开Eclipse?,用java代码实现数字证书的的颁发过程,其实颁发的过程就是一个权威的机构的数字证书给自己的数字证书签名的过程,这个过程其实是用两个证书共同生成一个新证书的过程。下面我们用java代码实现。
FileInputStream fis=new FileInputStream(name); //JKS为证书库的类型 KeyStore ks= KeyStore.getInstance("JKS"); ks.load(fis, storepass);//从证书库中读出签发者CA证书 //读出一个CA证书 Certificate cf=ks.getCertificate(alias); //根据别名和证书密码读出CA证书的私钥 PrivateKey privatekey=(PrivateKey)ks .getKey(alias, cakeypass); fis.close(); //提取证书的编码 byte[] encod_first = cf.getEncoded(); //根据证书的编码创建X509Certlmpl对象 X509CertImpl xcp_first=new X509CertImpl(encod_first); //根据上面的对象获得X509Certinfo类型的对象 //该对象封装了证书的全部内容 X509CertInfo cinfo_first = (X509CertInfo)xcp_first.get(X509CertImpl.NAME+"."+X509CertImpl.INFO); //然后获得X500Name类型的签发者信息 X500Name issuer = (X500Name)cinfo_first.get( X509CertInfo.SUBJECT+"."+CertificateIssuerName.DN_NAME);
?
<html><body> <applet codebase="." code="Clock.class" name="ClockApplet" archive="ClockApplet.jar" width="320" height="240"> </applet> </body></html>
?这是浏览器为了我们电脑自身的安全所做的一个安全保障。如果applet没有问题并且用户以及浏览器权限允许的情况下,我们点击允许后可以看到做好的applet在网页中运行。这里我们点击详细信息后就可以看到如下。
?我们可以看到这个html里面的jar包已经被lanjie这个数字证书签名了!它里面包含了各种签名的信息。不用质疑,签名过程已经实现了。
?