⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 webϵͳ

📁 有关mysql文章教程,本人收集的一些有关mysql文章教程
💻
📖 第 1 页 / 共 4 页
字号:
<P>我们用来嵌入签名的applet到HTML文档内的代码与我们用来嵌入正式 applet 的HTML代码毫无差别。因此使用签名的applet 时不推荐使用废弃的标记 </P>
<P><BR><CCID_NOBR>
<TABLE cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=400 align=center borderColorLight=black border=1>
<TBODY>
<TR>
<TD class=code style="FONT-SIZE: 9pt" bgColor=#e6e6e6><PRE><CCID_CODE>"&lt;applet&gt;"</CCID_CODE></PRE></TD></TR></TBODY></TABLE><BR>因为它无法显示applet运行时正确机能所需的最小JDK版本。某些Web浏览器(如IE)有对JDK v1.1的保准支持,并且除非特别声明签名的applet需要虚拟设备的更高版本,否则applet启动有限权限(当作普通的非签名applet ),从而不按意向执行,或者根本不启动。为了避免这种情况,推荐在Internet Explorer 中或者其他浏览器的 </P>
<P><BR><CCID_NOBR>
<TABLE cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=400 align=center borderColorLight=black border=1>
<TBODY>
<TR>
<TD class=code style="FONT-SIZE: 9pt" bgColor=#e6e6e6><PRE><CCID_CODE>&lt;embed&gt;中使用&lt;object&gt;标记,</CCID_CODE></PRE></TD></TR></TBODY></TABLE></CCID_NOBR><BR><BR>并推荐标明applet 所需的JDK的最小版本。一个名为HtmlConverter.exe的专用工具可用来自动标记从 </P>
<P><CCID_NOBR>
<TABLE cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=400 align=center borderColorLight=black border=1>
<TBODY>
<TR>
<TD class=code style="FONT-SIZE: 9pt" bgColor=#e6e6e6><PRE><CCID_CODE>&lt;applet&gt;</CCID_CODE></PRE></TD></TR></TBODY></TABLE><BR><BR>到更新的、嵌入标记的JDK 1.4 applet的转换。 </P>
<P>执行客户端Web浏览器(一般为Java Plug-In)中的applet的环境负责判断给出的applet是否签名。如果是,在他的下载对话框中显示警告:为正确机能需要完全访问客户端系统的、签名的signed applet 已经下载。环境还给出签名applet所用证书的详细信息,宣布该applet是否有效,然后询问用户他是否可以执行没有任何安全限制的applet 。如果用户同意,applet 启动完全访问权限,否则它作为一个正规的、非签名的applet来执行。 </P>
<P>从applet中访问Web服务 </P>
<P>我们现在考虑另外一个问题。文档签名的applet 必须有一些方法,通过这些方法发送计算的数字签名给服务器。这可以采用几种方式来实现——applet 打开一个到服务器的socket 然后使用该socket 来发送签名,或者它通过对服务器URL的访问请求来发送信息,或者它与Web浏览器通讯并发送信息给Web浏览器, Web浏览器接着再发送信息给服务器。最后一个方法是最方便的,因为它为发送和接收签名文件所需的编程最少。在这种情况下,服务器接收同一个单一Web浏览器请求中的文件以及它的签名,而不需要作其他动作。 </P>
<P>Applets 和Web浏览器之间的通讯 </P>
<P>假设我们有一个普通的HTML表格,这个表格可用来发送文件给某个Web应用,而且不用签名。如果我们想要扩展这个表格,使它能够支持文档的数字签名,那么我们就能够简单的集成Java-applet ,以便在它之上签名文件。万一我们有一个applet可以计算文件的数字签名并能够在HTML表格的某些字段内编写该签名,那么发送数字签名所花的功夫是最小的。在递交HTML表格时,Web浏览器将一起发送签名,所以applet不必建立任何客户端-服务器通讯。 </P>
<P>从Applets处访问HTML表格 </P>
<P>通常Java-applets可以访问他们所嵌入的HTML的代码。这种能力可用来从HTML表格中获取用户正在发送的文件名,所以它的内容可以读取和签名。签名的结构可返回到同一个HTML表格的某些字段内。从技术上来说applet 和Web浏览器之间的交互可用标准类netscape.javascript.JSObject来实现, netscape.javascript.JSObject可被支持applet执行的所有浏览器访问。它还提供用来访问从中已经下载applet的当前Web浏览器窗口的所有属性,这就有效的证明了我们获得对该窗口中的HTML文档、其中的HTML表格、这些表格中的字段的访问,总之一句话,我们获得了对可以使用JavaScript访问的所有事物的访问权。一些浏览器允许applets运行JavaScript,也允许它在标记中严格声明之后访问他们从中下载的HTML文档,注:在标记中严格声明是为了将他们嵌入到HTML页中。 某些标记如"mayscript" 和 "scriptable"参数,他们都必须拥有值 "true"。 </P>
<P>从JavaScript中访问Applet方法 </P>
<P>通常不止一条方法可执行applet 和浏览器之间的通讯——不必让applet在表格字段中编写所发送文件的数字签名计算的结果,我们可以用JavaScript函数调用applet的方法,该方法将返回签名并再次与JavaScript一道将签名保存在表格的一个字段内。这实际上是无效的因为在多数浏览器中JavaScript运行时不允许访问文件系统。不管applet 是否签名,是否允许访问本地文件,只要是通过JavaScript调用它,它就丧失了这个能力。那就是为什么我们不从JavaScript 中调用用于签名文档的Java 函数,而是创建一个按钮状的applet,只要点击该按钮就可以签名所选择的文件并且在表格中预先指定的字段内编写签名。在签名计算后,我们能够随意的让applet通过JavaScript自动提交HTML表格,这样用户在签名完成后就不能修改表格了。如果那样的话,拥有没有提交按钮的HTML表格也是很方便的,并且仅从applet 内部提交而且签名成功的话,提供表格也是有可能的。那样用户就不能发送非签名的或者错误签名的文件。 </P>
<P>在Web浏览器中签名文档的步骤 </P>
<P>在签名过程中,不但发送文档和从文档中计算得出的数字签名到服务器有必要,要用到的证书以及它完整的认证链(如果有的话)也要发送到服务器上。证书是必要的,那是因为它存储了签名用户的公匙,没有它校验是通不过的。此外,证书还提供了将该公匙链接到确实完成了签名的某个用户之上的方法。如果我们只发送文档、签名和公匙给服务器,我们能够校验签名的有效性,但是我们没有关于公匙所有者的标记的信息,除非服务器保存了所有可能客户端的记录。一般而言,发送用户的证书以及它完整的认证链给服务器是最方便的。从点击签名的applet 的按钮开始完成文档签名的步骤如下: </P>
<P>1.提示用户从本地文件系统中选择一个受保护的密码存储文件(PFX 文件),该文件包含拥有相应认证链和私匙的他的数字证书。要求用户输入密码,以访问所选密码存储中的信息。 </P>
<P>2.装在所选的PFX文件,获取用户的证书,相应的私匙和完整的认证链。 </P>
<P>3.要签名的文件名从HTML表格中取出来。使用用户的私匙签名文件。 </P>
<P>4.将签名的结果和用户的证书以及它完整的认证链写入HTML表格中的指定字段内。 </P>
<P>接收签名文件的服务器负责检测文件是否正确使用与接收的证书相应的私匙签名。除此以外,服务器必须校验使用的证书是否有效。如果有必要确认签名者的标记的话,校验通常是在文件接收之后立即或者稍候进行的。 </P>
<P>校验签名、证书和认证链 </P>
<P>除了applet必须签名用户发送的文件之外,我们的基于Web的信息系统也应该具有接收文件和校验签名的功能。 为了确认实际上是谁签名了文件,校验所接收的用户的证书和认证链是有必要的。我们来讨论一下所涉及的这些校验问题。 </P>
<P>校验数字签名 </P>
<P>校验数字签名的目的是为了判断出发送的签名是否与发送的文件和证书对应,以及他是否可信等等。校验通过标准的签名校验程序进行——发送者的公匙从证书中可以得到并且检查收到的文档签名是否是从与该公匙对应的私匙处获得。在Java Cryptography Architecture 中有用于数字签名校验的标准类。 </P>
<P>校验数字证书 </P>
<P>校验收到的证书主要是判断存储在证书中的公匙是否真的属于证书所颁发的人,也就是说用户是否是签名文档的人。这种校验有点复杂并且需要一些准备。 </P>
<P>有几种机制可用来校验数字证书。我们将使用其中的良种。校验证书的经典方法需要检测认证链。为了校验认证链要求它包含的所有证书都可用。否则认证无法完成。 </P>
<P>在我们的系统内,在签名过程中用户使用标准的、受保护的、保存在PFX文件内的、用于密码和证书的存储(密码存储)。我们现在已经知道这些文件包含证书以及它相应的私匙。在多数情况下,证书与它的完整认证链在一起,但是有时候这个链不可用。例如当用户使用自签发的证书签名文档时,它没有认证链。因此服务器除了接收了签名的文件之外,可能还接收了有完整的认证链的用户证书,也有可能接收了没有认证链的证书。 </P>
<P>校验有认证链的证书 </P>
<P>如果认证链提交了,可通过经典的方法校验它——校验形成此链的所有证书(以及证书之间的所有链接)。为此可使用Java Certification Path API 和可在JDK 1.4中实现的PKIX算法。只有当应用拥有一组正确的、所信任的认证机构的Root 证书(所信任的CA root证书)才有必要。 </P>
<P>校验没有认证链的证书 </P>
<P>万一没有用于签名的证书的认证链,有另外一个,尽管有点不方便,方法可用于校验——直接校验证书。不建立和校验所给出的证书的认证链,只校验它是否由信任的证书直接签名,也是可能的。系统能够存储这种信任证书的清单。当需要校验所给出的证书时,它就会搜索整个清单以便找到看起来像所给出的证书的直接发行者。如果找到了这种信任证书,所校验的证书可认为有效,除非它已经到期了。 </P>
<P>这种证书校验模式主要的不便就是系统需要存储人们可能使用的所有认证机构的证书。如果系统没有认证机构发行并签名的所给出的用户的证书,就算它有效,该用户的证书也不会通过校验。总之这种校验方法在用户提交没有认证链的证书的时候证明是有用的。 </P>
<P>注意,通常用户证书不是由认证机构的root证书直接签发的,只有一些中间证书是由一些CA的某些root证书签发的。如果我们使用直接证书校验,我们应该有用于直接发行我们客户端的证书的所有可能信任的中间证书的清单。该清单上的证书应该就是我们无条件相信的证书。如果我们在认证链的基础上使用证书,我们只需要我们信任的顶级认证机构的root证书的清单,而不需要这些中间证书。 </P>
<P>关于作者 </P>
<P>Svetlin Nakov 是保加利亚索非亚大学的兼职计算机科学讲师。它有着5年的专业软件工程和培训经验,目前担任一家领先的保加利亚软件公司的IT顾问。他擅长的领域包括:Java以及相关技术、.NET框架、网络安全、数据结构与算法、以及编程代码的品质。 </P>
<P>&nbsp;</P>
                          </span></td>
                      </tr>
                      <tr> 
                        <td height="40" valign="top"><div align="right"><span id="zoom" class="line11">(&nbsp;编辑: 
                            <font color=#669999> 
                            yanjie 
                            </font> &nbsp;阅读: <font color=#669999> 
                            <script src="/script/article_count.asp?ArticleID=1416000000027qbe6dik"></script>
                            </font> &nbsp;发布时间: <font color=#669999> 
                            2003/12/23
                            </font>&nbsp;)</span></div></td>
                      </tr>
					  <tr> 
                        <td height="60"><div align="center"><a href="/script/post_discuss.asp?ID=1416000000027qbe6dik&Type=1" target="_blank" class=black>[参与讨论]</a> 
                            <a class=black href="/script/send_mail.asp?ID=1416000000027qbe6dik&Type=1" target=_blank>[推荐给好友] 
                            </a>[<a href="javascript:doZoom(16)">大</a> <a href="javascript:doZoom(14)">中</a> 
                            <a href="javascript:doZoom(12)">小</a>] <a href="javascript:window.close()">[关闭窗口]</a></div></td>
                      </tr>
                      <tr>
                        <td height="40">
<table width=717 cellpadding=0 cellspacing=0 border=0 align=center>
                            <tr> 
                              <td width="358" height=20 bgcolor=#C60400 class=p3><b><font color="#FFFFFF">&nbsp;·</font></b><b><font color="ffffff">相关文章</font><font color="#FFFFFF">·</font></b></td>
                              <td width="1" bgcolor=#FFFFFF class=p3></td>
                              <td width="358" bgcolor=#C60400 class=p3><b><font color="#FFFFFF">&nbsp;·最近更新·</font></b></td>
                            </tr>
                            <tr> 
                              <td height=1 colspan="3" bgcolor=#ffffff><spacer type=block height=1></td>
                            </tr>
                            <tr bgcolor="#C60400"> 
                              <td colspan="3"> <table width=100% cellpadding=3 cellspacing=1 border=0>
                                  <tr> 
                                    <td width=50% bgcolor=ffffff valign=top class=p2> 
                                      <table border=0><tr><td><tr><td valign=top><img src=/images/arrow1.gif>&nbsp;</td><td><a href=/webdesign/8/20040508/1539250000027kdpyikc.htm class=titlelink target=_blank>困扰JSP的一些问题与解决方法</a>&nbsp;<span class=smalltime>[05-08]</span></td></tr><tr><td valign=top><img src=/images/arrow1.gif>&nbsp;</td><td><a href=/webdesign/8/20040508/1512160000027rl8zxao.htm class=titlelink target=_blank>深入Java中文问题及最优解决方法--上</a>&nbsp;<span class=smalltime>[05-08]</span></td></tr><tr><td valign=top><img src=/images/arrow1.gif>&nbsp;</td><td><a href=/webdesign/8/20040508/1505430000027ndsujqm.htm class=titlelink target=_blank>Jave基础学习:jdbc小技巧</a>&nbsp;<span class=smalltime>[05-08]</span></td></tr><tr><td valign=top><img src=/images/arrow1.gif>&nbsp;</td><td><a href=/webdesign/8/20040329/17274000000271dxlhql.htm class=titlelink target=_blank>Adapter模式在J2SE事件处理中的应用</a>&nbsp;<span class=smalltime>[03-29]</span></td></tr><tr><td valign=top><img src=/images/arrow1.gif>&nbsp;</td><td><a href=/webdesign/8/20040316/1652330000027smiy5sh.htm class=titlelink target=_blank>使用HTTP&nbsp;Client构建Web客户端</a>&nbsp;<span class=smalltime>[03-16]</span></td></tr><tr><td valign=top><img src=/images/arrow1.gif>&nbsp;</td><td><a href=/webdesign/8/20040311/1632460000027sukdwtp.htm class=titlelink target=_blank>Java&nbsp;Servlet&nbsp;编程及应用</a>&nbsp;<span class=smalltime>[03-11]</span></td></tr><tr><td valign=top><img src=/images/arrow1.gif>&nbsp;</td><td><a href=/webdesign/8/20040311/1631240000027uvseeka.htm class=titlelink target=_blank>用JSTL实现JSP应用程序快速开发</a>&nbsp;<span class=smalltime>[03-11]</span></td></tr><tr><td valign=top><img src=/images/arrow1.gif>&nbsp;</td><td><a href=/webdesign/8/20040309/1436110000027n1bcuxa.htm class=titlelink target=_blank>JSP/Servlet构建三层管理信息系统</a>&nbsp;<span class=smalltime>[03-09]</span></td></tr></td></tr></table>
                                    </td>
                                    <td width=50% bgcolor=ffffff valign=top class=p2> 
                                      <table border=0><tr><td><tr><td valign=top><img src=/images/arrow1.gif>&nbsp;</td><td><a href=/webdesign/8/20040508/1543570000027sowlvxu.htm class=titlelink target=_blank>在JSP中使用JavaMail</a>&nbsp;<span class=smalltime>[05-08]</span></td></tr><tr><td valign=top><img src=/images/arrow1.gif>&nbsp;</td><td><a href=/webdesign/8/20040508/1539250000027kdpyikc.htm class=titlelink target=_blank>困扰JSP的一些问题与解决方法</a>&nbsp;<span class=smalltime>[05-08]</span></td></tr><tr><td valign=top><img src=/images/arrow1.gif>&nbsp;</td><td><a href=/webdesign/8/20040508/1513590000027icnyxnb.htm class=titlelink target=_blank>Java代码编写的30条建议</a>&nbsp;<span class=smalltime>[05-08]</span></td></tr><tr><td valign=top><img src=/images/arrow1.gif>&nbsp;</td><td><a href=/webdesign/8/20040508/1512160000027rl8zxao.htm class=titlelink target=_blank>深入Java中文问题及最优解决方法--上</a>&nbsp;<span class=smalltime>[05-08]</span></td></tr><tr><td valign=top><img src=/images/arrow1.gif>&nbsp;</td><td><a href=/webdesign/8/20040508/1505430000027ndsujqm.htm class=titlelink target=_blank>Jave基础学习:jdbc小技巧</a>&nbsp;<span class=smalltime>[05-08]</span></td></tr><tr><td valign=top><img src=/images/arrow1.gif>&nbsp;</td><td><a href=/webdesign/8/20040329/1730220000027jkpa5f3.htm class=titlelink target=_blank>java基础学习:常用的ant的操作</a>&nbsp;<span class=smalltime>[03-29]</span></td></tr><tr><td valign=top><img src=/images/arrow1.gif>&nbsp;</td><td><a href=/webdesign/8/20040329/17274000000271dxlhql.htm class=titlelink target=_blank>Adapter模式在J2SE事件处理中的应用</a>&nbsp;<span class=smalltime>[03-29]</span></td></tr><tr><td valign=top><img src=/images/arrow1.gif>&nbsp;</td><td><a href=/webdesign/8/20040329/1725550000027i3hnnkq.htm class=titlelink target=_blank>Java研究:this 之鲜为人知的一面</a>&nbsp;<span class=smalltime>[03-29]</span></td></tr></table>
                                    </td>
                                  </tr>
                                </table></td>
                            </tr>
							<tr> 
                              <td height=15 colspan="3" bgcolor=#ffffff></td>
                            </tr>
                          </table></td>
                      </tr>
                      
                    </table></td>
                </tr>
              </table></TD>
          </TR>
        </TBODY>
      </TABLE></td>
  </tr>
</table>
<table width="770" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr> 
    <td height="3" bgcolor="#FFFFFF"></td>
  </tr>
</table>
<table width="770" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr> 
    <td height="4" background="/images/line.gif" bgcolor="#000000"></td>
  </tr>
</table>
<table width="770" height="38" border="0" align="center" cellpadding="3" cellspacing="0" bgcolor="#FFFFFF">
  <tr> 
    <td width="361" height="38" valign="top">webmaster:<a href="mailto:webmaster@kupage.com" class="blacknav">webmaster@kupage.com</a><br>
      Support:<a href="mailto:support@kupage.com" class="blacknav">support@kupage.com</a></td>

    <td width="397" valign="top"><div align="right"> <span class="line11"><a href="http://www.kupage.com"><img src="/images/kupage.gif" width="121" height="13" border="0"></a></span></div>

      <div align="right" class="line11">Copyright &copy; Kupage.com 2000-2003 
        All Rights Reserved</div></td>
  </tr>
</table>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -