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

📄 ciyawasay swanky & shumi 讓applet也可以讀寫檔案-製作signed applet.htm

📁 让APPLET可以运行本地代码
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0063)http://www.javaworld.com.tw/blog/archives/ciyawasay/000304.html -->
<HTML xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>ciyawasay : swanky & shumi: 讓Applet也可以讀寫檔案-製作Signed Applet</TITLE>
<META http-equiv=Content-Type content="text/html; charset=UTF-8"><LINK 
href="ciyawasay  swanky &amp; shumi 讓Applet也可以讀寫檔案-製作Signed Applet_files/styles-site.css" 
type=text/css rel=stylesheet><LINK title=RSS 
href="http://www.javaworld.com.tw/blog/ciyawasay/index.rdf" 
type=application/rss+xml rel=alternate><LINK title=Home 
href="http://www.javaworld.com.tw/blog/ciyawasay/" rel=start><LINK 
title=專題現況2004/08/21 
href="http://www.javaworld.com.tw/blog/archives/ciyawasay/000303.html" 
rel=prev><LINK title=颱風與大樹 
href="http://www.javaworld.com.tw/blog/archives/ciyawasay/000341.html" rel=next>
<SCRIPT language=JavaScript><!--function SymError(){  return true;}window.onerror = SymError;var SymRealWinOpen = window.open;function SymWinOpen(url, name, attributes){  return (new Object());}window.open = SymWinOpen;//--></SCRIPT>

<SCRIPT language=javascript type=text/javascript><!--function OpenTrackback (c) {    window.open(c,                    'trackback',                    'width=480,height=480,scrollbars=yes,status=yes');}var HOST = 'www.javaworld.com.tw';// Copyright (c) 1996-1997 Athenia Associates.// http://www.webreference.com/js/// License is granted if and only if this entire// copyright notice is included. By Tomer Shiran.function setCookie (name, value, expires, path, domain, secure) {    var curCookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires.toGMTString() : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");    document.cookie = curCookie;}function getCookie (name) {    var prefix = name + '=';    var c = document.cookie;    var nullstring = '';    var cookieStartIndex = c.indexOf(prefix);    if (cookieStartIndex == -1)        return nullstring;    var cookieEndIndex = c.indexOf(";", cookieStartIndex + prefix.length);    if (cookieEndIndex == -1)        cookieEndIndex = c.length;    return unescape(c.substring(cookieStartIndex + prefix.length, cookieEndIndex));}function deleteCookie (name, path, domain) {    if (getCookie(name))        document.cookie = name + "=" + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + "; expires=Thu, 01-Jan-70 00:00:01 GMT";}function fixDate (date) {    var base = new Date(0);    var skew = base.getTime();    if (skew > 0)        date.setTime(date.getTime() - skew);}function rememberMe (f) {    var now = new Date();    fixDate(now);    now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000);    setCookie('mtcmtauth', f.author.value, now, '', HOST, '');    setCookie('mtcmtmail', f.email.value, now, '', HOST, '');    setCookie('mtcmthome', f.url.value, now, '', HOST, '');}function forgetMe (f) {    deleteCookie('mtcmtmail', '', HOST);    deleteCookie('mtcmthome', '', HOST);    deleteCookie('mtcmtauth', '', HOST);    f.email.value = '';    f.author.value = '';    f.url.value = '';}function ReloadTextDiv(){   var NewText = document.getElementById("DynamicText").value;   splitText = NewText.split(/\n/);   var DivElement = document.getElementById("TextDisplay");   var i = 0;   DivElement.innerHTML = '';   for(i = 0; i < splitText.length; i++) {      if(splitText[i].length > 0 ) {         DivElement.innerHTML += splitText[i] + "<br />";      }   }}function ReloadNameDiv(){   var NewName = document.getElementById("DynamicName").value;   var DivElement = document.getElementById("NameDisplay");   DivElement.innerHTML = NewName;}//--></SCRIPT>
<!--<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"         xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"         xmlns:dc="http://purl.org/dc/elements/1.1/"><rdf:Description    rdf:about="http://www.javaworld.com.tw/blog/archives/ciyawasay/000304.html"    trackback:ping="http://www.javaworld.com.tw/blog/blog-cyokulin.cgi/223"    dc:title="讓Applet也可以讀寫檔案-製作Signed Applet"    dc:identifier="http://www.javaworld.com.tw/blog/archives/ciyawasay/000304.html"    dc:subject="java"    dc:description="<![CDATA[<p>Applet由於其sand box的安全機制<br />讓它無法自由自在地存取使用者本機系統上的檔案<br />要讓它能夠跳脫 sand box 的束縛<br />唯一的方式就是把它變成一個Signed Applet<br />這些步驟實在是很繁瑣<br />所以我在這邊整理了一下,分享給大家<br />如果有更方便的方法也請多指教囉~ :)</p><h2>首先</h2>先寫一個Applet,並把它包成JAR檔<br />我這裡寫的是一個可以看圖片的Applet,檔名叫<span class="comment">ImageViewer.jar</span><br />並且準備一個嵌入這個Applet的HTML檔<br />另外,要執行下述keytool與jarsigner指令,必須先確定有把JAVA_HOME/bin加入PATH中<h2>產生key</h2><pre><span class="code">keytool -genkey</span>輸入 keystore 密碼:  <span class="comment">swanky</span>您的名字與姓氏為何? [Unknown]:  <span class="comment">Hsiao Yu Cheng</span>您的編制單位名稱為何? [Unknown]:  <span class="comment">CAI</span>您的組織名稱為何? [Unknown]:  <span class="comment">TMTC</span>您所在的城市或地區名稱為何? [Unknown]:  <span class="comment">TAIPEI</span>您所在的州及省份名稱為何? [Unknown]:  <span class="comment">TAIWAN</span>該單位的二字國碼為何 [Unknown]:  <span class="comment">TW</span>N=Hsiao Yu Cheng, OU=CAI, O=TMTC, L=TAIPEI, ST=TAIWAN, C=TW 正確嗎? [否]:  <span class="comment">y</span>輸入 &lt;mykey&gt; 的主密碼       (RETURN 如果和 keystore 密碼相同):<span class="comment">(按Enter)</span></pre>你也可以用 <span class="code">keytool -genkey -alias 名稱</span> 來指定key的名稱<h2>察看key</h2><pre><span class="code">keytool -list</span>輸入 keystore 密碼:  <span class="comment">swanky</span>Keystore 類型: jksKeystore 提供者: SUN您的 keystore 包含 1 輸入<strong>mykey</strong>, 2004/8/24, keyEntry,認證指紋 (MD5): 17:37:2E:09:C8:C9:40:52:53:4D:F8:CA:D0:F9:EB:1C</pre>其中那個<strong>mykey</strong>就是這個key的名稱<br /><h2>匯出key</h2><pre><span class="code">keytool -export -alias mykey -file swanky.crt</span>輸入 keystore 密碼:  <span class="comment">swanky</span>認證儲存在檔案 &lt;swanky.crt&gt;</pre><h2>在jar檔簽個章</h2><pre><span class="code">jarsigner ImageViewer.jar mykey</span>Enter Passphrase for keystore: <span class="comment">swanky</span>Warning: The signer certificate will expire within six months.</pre><p>簽完章後,開啟嵌入這個Applet的HTML檔就會出現下面的畫面:<br /><img alt="result.gif" src="http://www.javaworld.com.tw/blog/archives/ciyawasay/20040824/result.gif" width="872" height="604" border="0" /><br />確認後這個Applet就可以讀取本機系統上的檔案了</p><p>執行看看:<a href="http://www.javaworld.com.tw/blog/archives/ciyawasay/20040824/applet.htm" target="_blank">Try!</a><br /><a href="http://www.javaworld.com.tw/blog/archives/ciyawasay/20040824/SignedApplet.zip">Download source file</a></p><p>另外<a href="http://ant.apache.org/" target="_blank">Ant</a>也有相關的<a href="http://ant.apache.org/manual/CoreTasks/genkey.html" target="_blank">GenKey Task</a>與<a href="http://ant.apache.org/manual/CoreTasks/signjar.html" target="_blank">SignJar</a>可以讓你迅速完成以上的動作喔~</p><p>參考文章:<ul>  <ol>    <li><a href="http://forum.java.sun.com/thread.jsp?forum=63&thread=132769" target="_blank">10 Steps to create a digital certificate and sign an applet</a></li>    <li><a href="http://mindprod.com/jgloss/signedapplets.html" target="_blank">Java Glossary : signed Applets</a></li>  </ol></ul></p>]]>"    dc:creator="swanky"    dc:date="2004-08-24T16:46:23+08:00" /></rdf:RDF>--><!--<rdf:RDF xmlns="http://web.resource.org/cc/"         xmlns:dc="http://purl.org/dc/elements/1.1/"         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Work rdf:about="http://www.javaworld.com.tw/blog/archives/ciyawasay/000304.html"><dc:title>讓Applet也可以讀寫檔案-製作Signed Applet</dc:title><dc:description><![CDATA[<p>Applet由於其sand box的安全機制<br />讓它無法自由自在地存取使用者本機系統上的檔案<br />要讓它能夠跳脫 sand box 的束縛<br />唯一的方式就是把它變成一個Signed Applet<br />這些步驟實在是很繁瑣<br />所以我在這邊整理了一下,分享給大家<br />如果有更方便的方法也請多指教囉~ :)</p><h2>首先</h2>先寫一個Applet,並把它包成JAR檔<br />我這裡寫的是一個可以看圖片的Applet,檔名叫<span class="comment">ImageViewer.jar</span><br />並且準備一個嵌入這個Applet的HTML檔<br />另外,要執行下述keytool與jarsigner指令,必須先確定有把JAVA_HOME/bin加入PATH中<h2>產生key</h2><pre><span class="code">keytool -genkey</span>輸入 keystore 密碼:  <span class="comment">swanky</span>您的名字與姓氏為何? [Unknown]:  <span class="comment">Hsiao Yu Cheng</span>您的編制單位名稱為何? [Unknown]:  <span class="comment">CAI</span>您的組織名稱為何? [Unknown]:  <span class="comment">TMTC</span>

⌨️ 快捷键说明

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