📄 java加密和数字签名编程快速入门 3.htm
字号:
target=_blank>软件下载</A> <A class=f26
href="http://137.club.yesky.com/" target=_blank>软件论坛</A></TD>
<TD vAlign=top align=right width=16><IMG height=44
src="Java加密和数字签名编程快速入门 3.files/software04-120112.jpg"
width=16></IMG></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=776 border=0>
<TBODY>
<TR>
<TD width=1 bgColor=#b9bebe></TD>
<TD align=middle width=774 bgColor=#eff8ff height=100><IFRAME
src="Java加密和数字签名编程快速入门 3.files/;pl=pl-15-etime-all;tp=if;sk=0;ck=0;.htm"
frameBorder=0 width=760 scrolling=no height=90></IFRAME></TD>
<TD width=1 bgColor=#b9bebe></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=776 border=0>
<TBODY>
<TR>
<TD bgColor=#b9bebe height=1></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=776 border=0>
<TBODY>
<TR>
<TD width=1 bgColor=#b9bebe rowSpan=13></TD>
<TD vAlign=top width=603 bgColor=#f0f2fb>
<TABLE cellSpacing=0 cellPadding=0 width=603 border=0>
<TBODY>
<TR>
<TD width=10></TD>
<TD width=55>您的位置:</TD>
<TD width=538><A
href="http://www.yesky.com/SoftChannel/72339069014638592/index.shtml">软件</A>
> <A
href="http://www.yesky.com/SoftChannel/72342367549521920/index.shtml">开发者网络</A>
> <A
href="http://www.yesky.com/SoftChannel/72342371844489216/index.shtml">开发工具</A>
> <A
href="http://www.yesky.com/SoftChannel/72342371961929728/index.shtml">Java</A>
> 正文</TD></TR>
<TR></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=603 border=0>
<TBODY>
<TR>
<TD bgColor=#dee2f5 height=40>
<TABLE height=40 cellSpacing=0 cellPadding=0 width=590 align=center
border=0>
<TBODY>
<TR>
<TD align=middle><FONT
class=f22><B>Java加密和数字签名编程快速入门</B></FONT></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD background="Java加密和数字签名编程快速入门 3.files/newhard-040906_c_1.gif"
height=1></TD></TR>
<TR>
<TD vAlign=top height=5></TD></TR>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=0 width=603 border=0>
<TBODY>
<TR>
<TD vAlign=top align=middle width=373 rowSpan=9>
<TABLE cellSpacing=0 cellPadding=0 width=373 align=center
border=0>
<TBODY>
<TR>
<TD align=middle><SPAN id=pip></SPAN></TD></TR>
<TR>
<TD align=middle><IFRAME
src="Java加密和数字签名编程快速入门 3.files/y-soft-column-1.htm"
frameBorder=0 width=360 scrolling=no
height=50></IFRAME></TD></TR></TBODY></TABLE></TD>
<TD width=5></TD>
<TD vAlign=top width=220>
<TABLE cellSpacing=0 cellPadding=0 width=220 border=0>
<TBODY>
<TR>
<TD colSpan=2><FONT class=f21><B>[文章信息]</B></FONT></TD></TR>
<TR>
<TD colSpan=2 height=10></TD></TR>
<TR>
<TD vAlign=top width=62>作者:</TD>
<TD vAlign=top width=158><FONT
color=#0e3e92>jwsh1984</FONT></TD></TR>
<TR>
<TD vAlign=top>时间:</TD>
<TD vAlign=top><FONT
color=#0e3e92>2005-02-17</FONT></TD></TR>
<TR>
<TD vAlign=top>出处:</TD>
<TD vAlign=top><FONT color=#0e3e92>blog</FONT></TD></TR>
<TR>
<TD vAlign=top>责任编辑:</TD>
<TD vAlign=top><FONT color=#0e3e92>方舟</FONT></TD></TR>
<TR>
<TD colSpan=2 height=10></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=220 border=0>
<TBODY>
<TR>
<TD colSpan=2><FONT class=f21><B>[文章导读]</B></FONT></TD></TR>
<TR>
<TD colSpan=2 height=10></TD></TR>
<TR>
<TD vAlign=top colSpan=2><SPAN
class=f14>本文主要谈一下密码学中的加密和数字签名,以及其在java中如何进行使用</SPAN></TD></TR>
<TR>
<TD colSpan=2 height=10></TD></TR></TBODY></TABLE>
<SCRIPT
language=JavaScript><!--var ad_id=1003//--></SCRIPT>
<SCRIPT language=JavaScript
src="Java加密和数字签名编程快速入门 3.files/10.js"></SCRIPT>
</TD>
<TD width=5></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD>
<TD width=1 bgColor=#b9bebe rowSpan=13></TD>
<TD vAlign=top align=middle width=170 bgColor=#ffffff rowSpan=13>
<TABLE cellSpacing=5 cellPadding=0 width=165 border=0>
<TBODY>
<TR>
<TD align=middle>
<SCRIPT language=JavaScript><!--var ad_id=0403//--></SCRIPT>
<SCRIPT language=JavaScript
src="Java加密和数字签名编程快速入门 3.files/04.js"></SCRIPT>
</TD></TR></TBODY></TABLE>
<TABLE height=28 cellSpacing=0 cellPadding=0 width=160
background="Java加密和数字签名编程快速入门 3.files/2004-30.gif" border=0>
<TBODY>
<TR>
<TD align=middle><B>advertisement</B></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=160 border=0>
<TBODY>
<TR>
<TD width=1 bgColor=#adadad></TD>
<TD align=middle bgColor=#ffffff><SPAN id=sv></SPAN></TD>
<TD width=1 bgColor=#adadad></TD></TR></TBODY></TABLE>
<TABLE height=1 cellSpacing=0 cellPadding=0 width=160 bgColor=#adadad
border=0>
<TBODY>
<TR>
<TD></TD></TR></TBODY></TABLE>
<TABLE height=10 cellSpacing=0 cellPadding=0 width=160 border=0>
<TBODY>
<TR>
<TD></TD></TR></TBODY></TABLE>
<TABLE height=28 cellSpacing=0 cellPadding=0 width=160
background="Java加密和数字签名编程快速入门 3.files/2004-30.gif" border=0>
<TBODY>
<TR>
<TD align=middle><B>热点推荐</B></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=160 border=0>
<TBODY>
<TR>
<TD width=1 bgColor=#adadad></TD>
<TD align=middle bgColor=#ffffff>
<TABLE cellSpacing=0 cellPadding=2 width=150 border=0>
<TBODY>
<TR>
<TD width=7>· </TD>
<TD width=143><A
href="http://www.yesky.com/SoftChannel/72342371928637440/20050217/1911703.shtml"
target=_blank>在VB6中用命令行为模式控制GUI动作</A></TD></TR>
<TR>
<TD width=7>· </TD>
<TD width=143><A
href="http://www.yesky.com/SoftChannel/72357786515668992/20050216/1911308.shtml"
target=_blank>Excel图表向导详解</A></TD></TR>
<TR>
<TD width=7>· </TD>
<TD width=143><A
href="http://www.yesky.com/SoftChannel/72356699922497536/20041123/1878990.shtml"
target=_blank>浅析各种计算机病毒应对方法</A></TD></TR>
<TR>
<TD width=7>· </TD>
<TD width=143><A
href="http://www.yesky.com/SoftChannel/72339069014638592/20050216/1911585.shtml"
target=_blank>2月16日软件精选 春节文章精彩回顾</A></TD></TR>
<TR>
<TD width=7>· </TD>
<TD width=143><A
href="http://www.yesky.com/SoftChannel/72348968914255872/20050216/1911545.shtml"
target=_blank>轻松玩转Excel数据图表</A></TD></TR></TBODY></TABLE></TD>
<TD width=1 bgColor=#adadad></TD></TR></TBODY></TABLE>
<TABLE height=1 cellSpacing=0 cellPadding=0 width=160 bgColor=#adadad
border=0>
<TBODY>
<TR>
<TD></TD></TR></TBODY></TABLE></TD>
<TD width=1 bgColor=#b9bebe rowSpan=13></TD></TR>
<TR>
<TD vAlign=top bgColor=#f0f2fb height=5></TD></TR>
<TR>
<TD vAlign=top
background="Java加密和数字签名编程快速入门 3.files/newhard-040906_c_1.gif"
bgColor=#f0f2fb height=1></TD></TR>
<TR>
<TD vAlign=top bgColor=#dee2f5>
<TABLE height=25 cellSpacing=0 cellPadding=0 width=590 align=center
border=0>
<TBODY>
<TR>
<TD width=90><FONT class=f21><B>[正文]</B></FONT></TD>
<TD align=right width=480>
<P align=right><FONT color=red><A
href="http://www.yesky.com/SoftChannel/72342371961929728/20050217/1911753_1.shtml">上一页</A> <A
href="http://www.yesky.com/SoftChannel/72342371961929728/20050217/1911753.shtml">1</A>
<A
href="http://www.yesky.com/SoftChannel/72342371961929728/20050217/1911753_1.shtml">2</A>
3 </FONT></P></TD>
<TD align=middle width=20></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD vAlign=top
background="Java加密和数字签名编程快速入门 3.files/newhard-040906_c_1.gif"
bgColor=#f0f2fb height=1></TD></TR>
<TR>
<TD vAlign=top bgColor=#f0f2fb height=10></TD></TR>
<TR>
<TD vAlign=top bgColor=#f0f2fb>
<TABLE cellSpacing=0 cellPadding=0 width=590 align=center border=0>
<TBODY>
<TR>
<TD><SPAN
class=f14> <B>二、JAR的签名</B><BR><BR> 我们已经学会了怎样创建自己的证书了,现在可以开始了解怎样对JAR文件签名,JAR文件在Java中相当于
ZIP 文件,允许将多个 Java 类文件打包到一个具有 .jar
扩展名的文件中,然后可以对这个jar文件进行数字签名,以证实其来源和真实性。该 JAR
文件的接收方可以根据发送方的签名决定是否信任该代码,并可以确信该内容在接收之前没有被篡改过。同时在部署中,可以通过在策略文件中放置访问控制语句根据签名者的身份分配对机器资源的访问权。这样,有些Applet的安全检验访问就得以进行。<BR><BR> 使用jarsigner工具可以对jar文件进行签名:<BR><BR> 现在假设我们有个Test.jar文件(可以使用jar命令行工具生成):<BR><BR> jarsigner
Test.jar feiUserKey (这里我们上面创建了该别名的证书)
,详细信息可以输入jarsigner查看帮助<BR><BR> 验证其真实性:jarsigner
-verify Test.jar(注意,验证的是jar是否被修改了,但不检验减少的,如果增加了新的内容,也提示,但减少的不会提示。)<BR><BR> 使用Applet中:<applet
code="Test.class" archive="Test.jar" width="150"
height="100"></applet>然后浏览器就会提示你:准许这个会话-拒绝-始终准许-查看证书等。<BR><BR> <B>三、安全套接字层(SSL
Secure Sockets Layer)和传输层安全性(TLS Transport Layer
Security)</B><BR><BR> 安全套接字层和传输层安全性是用于在客户机和服务器之间构建安全的通信通道的协议。它也用来为客户机认证服务器,以及(不太常用的)为服务器认证客户机。该协议在浏览器应用程序中比较常见,浏览器窗口底部的锁表明
SSL/TLS 有效:<BR><BR> 1)当使用 SSL/TLS(通常使用 https://
URL)向站点进行请求时,从服务器向客户机发送一个证书。客户机使用已安装的公共 CA 证书通过这个证书验证服务器的身份,然后检查 IP
名称(机器名)与客户机连接的机器是否匹配。<BR><BR> 2)客户机生成一些可以用来生成对话的私钥(称为会话密钥)的随机信息,然后用服务器的公钥对它加密并将它发送到服务器。服务器用自己的私钥解密消息,然后用该随机信息派生出和客户机一样的私有会话密钥。通常在这个阶段使用
RSA 公钥算法。<BR><BR> 3)客户机和服务器使用私有会话密钥和私钥算法(通常是
RC4)进行通信。使用另一个密钥的消息认证码来确保消息的完整性。<BR><BR> java中javax.net.ssl.SSLServerSocketFactory类提供了一个很好的SSLServerSocker的工厂类,熟悉Socket编程的读者可以去练习。当编写完服务器端之后,在浏览器上输入https://主机名:端口
就会通过SSL/TLS进行通话了。注意:运行服务端的时候要带系统环境变量运行:javax.net.ssl.keyStore=密钥库(创建证书时,名字应该为主机名,比如localhost)和javax.net.ssl.keyStorePassword=你的密码</SPAN><BR></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD vAlign=top bgColor=#f0f2fb height=10></TD></TR>
<TR>
<TD vAlign=top
background="Java加密和数字签名编程快速入门 3.files/newhard-040906_c_1.gif"
bgColor=#f0f2fb height=1></TD></TR>
<TR>
<TD vAlign=top bgColor=#dee2f5>
<TABLE height=25 cellSpacing=0 cellPadding=0 width=590 align=center
border=0>
<TBODY>
<TR>
<TD width=90></TD>
<TD align=right width=480>
<P align=right><FONT color=red><A
href="http://www.yesky.com/SoftChannel/72342371961929728/20050217/1911753_1.shtml">上一页</A> <A
href="http://www.yesky.com/SoftChannel/72342371961929728/20050217/1911753.shtml">1</A>
<A
href="http://www.yesky.com/SoftChannel/72342371961929728/20050217/1911753_1.shtml">2</A>
3 </FONT></P></TD>
<TD align=middle width=20></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD vAlign=top
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -