posts - 33, comments - 46, trackbacks - 0, articles - 2

          眾所周知,Oracle的數據庫、中間件都可以在網上自由下載,沒有任何license注冊碼的限制。
          現在,Oracle以85億美元收購了BEA,帶來的最直接的好處是,以前嚴格保密的License文件現在都可以直接下載了。請看下面頁面:
          http://commerce.bea.com/products/all_products.jsp#WL

          WebLogic Family License Keys
          http://download2.bea.com/pub/license/All%20Products/BEA_WebLogic.zip

          AquaLogic Family License Keys
          http://download2.bea.com/pub/license/All%20Products/BEA_AquaLogic.zip

          摘錄部分內容如下:
          ========================================
              = Read Me -- BEA WebLogic License Keys =
              ========================================

          Some BEA products require multiple license keys for full functionality, or use a license key which is not intuitively identified as being for that product.

          Please refer to the legend below to determine which license keys are required for the BEA products you own.



          BEA WebLogic Server Products (Product, Version, License ID/file)
          ================================================================

          BEA WebLogic Server Advantage Edition    10.0 - 10.0mp1    LIC-WLSA10.txt
                              9.2 - 9.2mp3    LIC-WLSA92.txt
                              9.0        LIC-WLSA90.txt

          BEA WebLogic Server Premium Edition    10.0 - 10.0mp1    LIC-WLSP10.txt
                              9.2 - 9.2mp3    LIC-WLSP92.txt
                              9.0        LIC-WLSP90.txt

          BEA WebLogic Server SDK            10.x        LIC-WLSP10-DEV
                              9.2        LIC-WLSP92-DEV
                              9.1        LIC-WLSP91-DEV
                              9.0        LIC-WLSP90-DEV

          BEA WebLogic Server Premium for Linux s/390 and z/Series
                              7.0sp1        LIC-WLS70-CLS-56

          BEA WebLogic Server Mid-Market Edition    10.0 - 10.0mp1    LIC-WLS10-MME.txt
                              9.2 - 9.2mp3    LIC-WLS92-MME.txt


              
          BEA WebLogic Platform Products (Product, Version, License ID/file)
          ==================================================================
                          
          BEA WebLogic Platform            10.2 ISV    LIC-PLAT102-ISVED
                              10.2        LIC-AUTONOMY

                                      LIC-PORT102
                                      
          LIC-WLI102
                              9.2mp3 ISV    LIC-PLAT92-ISVED
                              9.2 - 9.2mp3    LIC-PFRM92.txt
                              8.1 - 8.1sp6    LIC-PFRM81-128.txt
                              7.0 - 7.0sp7    LIC-PFRM70-128.txt

          <license
                      
          component="WebLogic"
                      cpus
          ="unvalued"
                      expiration
          ="never"
                      ip
          ="any"
                      licensee
          ="Customer"
                      serial
          ="454493271161-2642447506228"
                      type
          ="RTK"
                      units
          ="unlimited"
                      signature
          ="MCwCFHRYQyBkRqhyayiKQBDxfTq/bWfYAhQj+RMMeDMVxjiYhBaXuHobbHe/JA=="
                  
          />

          呵呵,都什么年代了,您還在Google、baidu中搜索“weblogic 破解”這樣的關鍵字嗎,用不著了。但是這并不意味著您可以免費使用這些產品,熟悉Oracle的人都知道,如果您想在企業級應用中部署這些產品,您還是得付money!

          posted @ 2008-06-05 10:46 在路上... 閱讀(11245) | 評論 (7)編輯 收藏

          開發環境一直使用jdbc14.jar "Oracle JDBC Driver version - 9.0.2.0.0"版本連接Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 服務器,突然今天不能連接了,報錯誤如下:
          java.sql.SQLException: 不能在 UTF8 和 UCS2 之間轉換: failUTF8Conv
                  at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:
          134)
                  at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:
          179)
                  at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:
          1130)
                  at oracle.jdbc.dbaccess.DBConversion.failUTF8Conv(DBConversion.java:
          2261
          )
                  at oracle.jdbc.dbaccess.DBConversion.utf8BytesToJavaChars(DBConversion.j
          ava:
          2061)
                  at oracle.jdbc.dbaccess.DBConversion.utf8BytesToString(DBConversion.java
          :
          1976)
                  at oracle.jdbc.dbaccess.DBConversion.CharBytesToString(DBConversion.java
          :
          543)
                  at oracle.jdbc.ttc7.TTIoer.processWarning(TTIoer.java:
          334)
                  at oracle.jdbc.ttc7.O3log.receive2nd(O3log.java:
          523)
                  at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:
          278)
                  at oracle.jdbc.driver.OracleConnection.
          <init>(OracleConnection.java:346)

                  at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.ja
          va:
          468)
                  at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:
          314)
                  at java.sql.DriverManager.getConnection(Unknown Source)
                  at java.sql.DriverManager.getConnection(Unknown Source)
                  at JDBC.main(JDBC.java:
          9)
          然后更換為Oracle  11g的驅動,可以正常連接了,但是會顯示下面異常
          javax.management.MalformedObjectNameException: Invalid character '
          '
           in value part of property
          at javax.management.ObjectName.construct(ObjectName.java:529)
          at javax.management.ObjectName.
          <init>(ObjectName.java:1304)
          at oracle.jdbc.driver.OracleDriver.registerMBeans(OracleDriver.java:
          303)
          at oracle.jdbc.driver.OracleDriver$
          1.run(OracleDriver.java:213)
          at java.security.AccessController.doPrivileged(Native Method)
          at oracle.jdbc.driver.OracleDriver.
          <clinit>(OracleDriver.java:209)
          at java.lang.Class.forName0(Native Method)
          at java.lang.Class.forName(Class.java:
          164)
          采用9i驅動還碰到下面錯誤
          java.sql.SQLException: 違反協議
                  at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:
          134)
                  at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:
          179)
                  at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:
          1160)
                  at oracle.jdbc.ttc7.O3log.receive2nd(O3log.java:
          548)
                  at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:
          279)
                  at oracle.jdbc.driver.OracleConnection.
          <init>(OracleConnection.java:371)

                  at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.ja
          va:
          551)
                  at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:
          351)
                  at java.sql.DriverManager.getConnection(Unknown Source)
                  at java.sql.DriverManager.getConnection(Unknown Source)
          • 最終查詢資料,發現還是jdbc驅動問題,原因因該是與bug有關,因此從新從otn.oracle.com下載驅動升級解決問題。
            ojdbc6.jar的驅動版本可以運行java -jar ojdbc6.jar查看,如果是Oracle 11.1.0.6.0-Production+ JDBC 4.0 compiled with JDK6,帶+號就是補丁版本,否則是沒有打補丁的,仍然可能出錯。
          • 我遇到的請況,采用10.2.0.4的jdbc驅動就沒有問題了
          • oracle jdbc驅動下載地址如下:

          Oracle Database 11g Release 1 (11.1.0.6) drivers
          Oracle Database 10g Release 2 (10.2.0.4), (10.2.0.3), (10.2.0.2), (10.2.0.1.0) drivers
          Oracle Database 10g (10.1.0.5), (10.1.0.4), (10.1.0.2.0) drivers
          Oracle9i Release 2 (9.2.0.8), (9.2.0.5), (9.2.0.4), (9.2.0.3), & (9.2.0.1) drivers
          Oracle9i Release 1 (9.0.1.4) & (9.0.1) drivers
          Oracle8i Release 2 (8.1.7)

          posted @ 2008-06-03 12:46 在路上... 閱讀(5849) | 評論 (0)編輯 收藏

          1、首先到請下載最新版本的Java Service Wrapper,點我下載
          2、準備如下文件,復制到test目錄,這些文件可以從下載包中找到:
          wrapper.dll
          wrapper.exe
          wrapper.jar
          3、編寫wrapper.conf,也放在同一級目錄下面,內容如下

          # Java Application完整路徑
          wrapper.java.command
          =java

          wrapper.java.mainclass
          =org.tanukisoftware.wrapper.WrapperSimpleApp

          #定義程序運行的classpath
          wrapper.java.classpath
          .1=wrapper.jar
          wrapper.java.classpath
          .2=[jar file/path]

          # Java Library Path (location of Wrapper.DLL or libwrapper.so)
          wrapper.java.library.path
          .1=.

          # Java Additional Parameters
          #wrapper.java.additional
          .1=

          # Initial Java Heap Size (in MB)
          #wrapper.java.initmemory
          =3

          # Maximum Java Heap Size (in MB)
          #wrapper.java.maxmemory
          =64

          # 運行的Main Class
          wrapper.app.parameter
          .1=

          wrapper.console.format
          =PM
          wrapper.console.loglevel
          =INFO
          wrapper.logfile
          =Beanskt.log
          wrapper.logfile.format
          =LPTM
          wrapper.logfile.loglevel
          =INFO

          wrapper.logfile.maxsize
          =0
          wrapper.logfile.maxfiles
          =0
          wrapper.syslog.loglevel
          =NONE

          #window服務配置
          wrapper.console.title
          =samplesvr
          #服務名
          wrapper.ntservice.name
          =samplesvr

          # 顯示名稱
          wrapper.ntservice.displayname
          = sample  Service

          # 描述
          wrapper.ntservice.description
          =sample Service

          # 依賴項
          wrapper.ntservice.dependency
          .1=

          # 啟動模式:  AUTO_START or DEMAND_START
          wrapper.ntservice.starttype
          =AUTO_START

          # 是否交互.
          wrapper.ntservice.interactive
          =false


          4、運行測試,安裝服務
          》測試運行是否正常
          wrapper.exe -c wrapper.conf
          》安裝服務
          wrapper.exe -i wrapper.conf
          》卸載服務
          wrapper.exe -r wrapper.conf
          》啟動
          wrapper.exe -t wrapper.conf
          》停止
          wrapper.exe -p wrapper.conf




          posted @ 2008-01-17 15:06 在路上... 閱讀(6998) | 評論 (0)編輯 收藏

                稱為是最好的JAVA IDE開發平臺!包括:J2EE支持、Ant、JUnit、集成CVS。包含一個智能編輯器,代碼輔助和增強的自動代碼工具。可提高JAVA開發人員的效率。

             JetBrains已經發布了IntelliJ IDEA 7.0,IntelliJ IDEA 7里程碑1包括許多新的特性和提高,尤其是在對Java EE的支持上,包括Spring和Hibernate,代碼分析,擴展版本控制支持,Rational ClearCase集成,增強了調試,代碼查詢,可用性和性能

             正使用IntelliJ IDEA 6.0的用戶可以免費使用IntelliJ IDEA 7.0到2007年12月31號,評估用戶可以從官方網站下載并有30天的免費試用期。

             IntelliJ IDEA 7.0的新特性包括:

             1.性能提高
             IDE的啟動速度得到改善
             編輯JSP的速度加快
             更快的XML的格式化

             2.對Hibernate的支持
             代碼助手

             3.對Spring的支持
             代碼助手
             觀察依賴的可視化圖表
             專門的文件設置編輯器

             4.與Eclipse的協作能力
             導入(從現有的Eclipse工程中創建IntelliJ IDEA .iml和.ipr文件 )
             導出(從現有的IntelliJ IDEA .iml文件中創建Eclipse工程文件)
             同步

             5.版本控制
             支持Rational ClearCase

             6.JavaScript
             支持JSON文件類型
             JSDoc和DoJo樣式類型注釋提供了更準確的完成和參數類型信息
             JSDoc和DoJo樣式注釋的豐富文檔
             JavaScript命名空間完成/驗證

          一份注冊碼如下,Enjoy!
          =============================================================

          user name:在路上...
          License:12008-M3132-RY84C-0GSMK-V7TNK-33XV0
          customer id:12008
          product id:IDEA
          license type:COMMERCIAL
          major version:7
          minor version:0
          generationDate:Mon Oct 22 16:31:47 CST 2007
          expirationDate:Sun Jan 20 16:31:47 CST 2008

           

          posted @ 2007-10-22 16:35 在路上... 閱讀(3312) | 評論 (0)編輯 收藏

          一個典型應用中,使用delphi作為客戶端,J2EE服務端,兩者之間用XML作為數據交換,為了提高效率,對XML數據進行壓縮,為此需要找到一種壓縮/解壓算法能夠兩個平臺之間交互處理,使用ZLIB算法就是一個不錯的解決方案。
          1、JAVA實現
          在JDK中,在java.util.zip包中已經內置了ZLIB的實現,示例代碼如下:
           1//解壓
           2    public String decompressData(String encdata) {
           3        try {
           4            ByteArrayOutputStream bos = new ByteArrayOutputStream();
           5            InflaterOutputStream zos = new InflaterOutputStream(bos);
           6            zos.write(convertFromBase64(encdata));
           7            zos.close();
           8            return new String(bos.toByteArray());
           9        }
           catch (Exception ex) {
          10            ex.printStackTrace();
          11            return "UNZIP_ERR";
          12        }

          13    }

          14
          15    //壓縮
          16    public String compressData(String data) {
          17        try {
          18            ByteArrayOutputStream bos = new ByteArrayOutputStream();
          19            DeflaterOutputStream zos = new DeflaterOutputStream(bos);
          20            zos.write(data.getBytes());
          21            zos.close();
          22            return new String(convertToBase64(bos.toByteArray()));
          23        }
           catch (Exception ex) {
          24            ex.printStackTrace();
          25            return "ZIP_ERR";
          26        }

          27    }

          2、DELPHI中的實現
          在DELPHI中,有第3方的控件可以利用來實現壓縮/解壓,這里我們選擇VCLZIP V3.04,可以從這里下載http://www.vclzip.net
          為了提高通用性,我們可以編寫一個標準的DLL,就可以在Win32平臺隨意調用了,關鍵代碼如下:
          function Cmip_CompressStr(txt: PChar): pchar; stdcall;
          var
            zip: TVclZip;
            compr: 
          string;
            data: PChar;
          begin
            zip :
          = TVclZip.Create(nil);
            compr :
          = zip.ZLibCompressString(txt);
            data :
          = pchar(Base64EncodeStr(compr));
            Result :
          = StrNew(data);
            zip.Free
          end;

          function Cmip_DeCompressStr(txt: PChar): pchar; stdcall;
          var
            zip: TVCLUnZip;
            compr: 
          string;
            data: PChar;
          begin
            zip :
          = TVCLUnZip.Create(nil);
            compr :
          = zip.ZLibDecompressString(Base64DecodeStr(txt));
            data :
          = StrNew(pchar(compr));
            Result :
          = data;
            zip.Free
          end;


          在我們當前的項目中,采用的方案是Powerbuilder +DLL與J2EE平臺進行xml數據交換的方式。

          posted @ 2007-10-10 10:35 在路上... 閱讀(3436) | 評論 (3)編輯 收藏

          在這里可以下載Resin  Plugin for  IntelliJ IDEA  ,但是對于3.1X好像還不支持。http://plugins.intellij.net/plugin/?id=215
          作者更新太慢,不好意思自己動手反編譯修改了幾個地方,現在可以支持Resin Pro 3.1.2,如果需要地可以從這里
          * 下載:
          Resin_2640_31.zip
          * 安裝:
          修改文件名為Resin_2640_31.jar,復制到C:\Documents and Settings\[username]\.IntelliJIdea60\config\plugins下面
          * 修改記錄
          1、將3.1.2的resin.conf文件命名為resin31.conf加到org\intellij\j2ee\web\resin\resin下面
          2、將ResinVersion.java修改為如下方法判斷是否3.1版本

          public static final ResinVersion VERSION_3_X = new ResinVersion("Resin 3.x"{

                  
          public boolean
           isOfVersion(File file)
                  
          {
                      
          return (new File(new File(file, "lib"), "jsdk-15.jar"
          )).exists();
                  }


                  
          public String getStartupClass()
                  
          {
                      
          return "com.caucho.server.resin.Resin"
          ;
                  }


              }
          3、修改Resin3XConfigurationStrategy.java文件中部分判斷http port、host的代碼
          原來的XML節點為root->server->host->http->port   and  root->server->host->web-app
          3.1下面的XML節點為root->cluster->server-default->http->port and    root->cluster->host->web-app
          改過的代碼為
          Element httpElement = document.getRootElement().getChild("cluster", ns).getChild("server-default", ns).getChild("http", ns);

          Element host = getHost(document.getRootElement().getChild("cluster", ns), ns, webApp);

          List hosts = document.getRootElement().getChild("cluster", ns).getChildren("host", ns);

          public InputStream getDefaultResinConfContent()
              {
                  return getClass().getResourceAsStream("/org/intellij/j2ee/web/resin/resin/resin31.conf");
              }

          原來的作者沒有開源,所以不好做進一步的修改完善,對于3.0的版本應該就不支持了。

          posted @ 2007-09-18 11:04 在路上... 閱讀(1799) | 評論 (2)編輯 收藏

          PowerBuilder在顯示圖片方面的確是一個弱項,以前一直沒有找到好的方法,如果自己用delphi寫個ActiveX控件,在關閉的時候總會出現錯誤,實在是很郁悶,后來發現Kodak Image Edit Control就沒有這個問題,而且可以支持BMP,DCX,GIF,JPG-JFIF,PCX,TIFF,WIFF,XIF等常見的圖片格式,該控件在win98,win2000等環境中都已經安裝好了,對于XP環境也可以簡單的從Win2000移植過來。
          1、鼠標放大、縮小效果
          在OLE控件的other事件中加入下面的代碼
           1Choose   Case   Message.Number   
           2  Case   522
            
           3      if   IntHigh(message.wordparm)   =   120   then   //
          鼠標滾輪向上 
           4        if int(ole_1.object.zoom)<=20 then
           return
           5          ole_1.object.zoom= ole_1.object.zoom -10

           6      else   
           7          ole_1.object.zoom= ole_1.object.zoom+10

           8      end   if   
           9
                ole_1.object.display()
          10End   Choose
          2、鼠標拖動效果
          如果不想選擇框老是出現的話,需要加入
          ole_1.object.SelectionRectangle = False
          1//1.定義Instance變量
          2int
           mousex,mousey
          3int moveon
          以下代碼屬于OLE控件的事件
          1//Event MouseDown事件
          2moveon=1
          3mousex=ocx_x
          4mousey=ocx_y

          1//MouseMove事件
          2if moveon=0 then return
          3ole_1.object.ScrollPositionX =ole_1.object.ScrollPositionX+(MouseX -ocx_x)
          4ole_1.object.ScrollPositionY =ole_1.object.ScrollPositionY+(MouseY -ocx_y)
          5ole_1.object.refresh()
          6mousex=ocx_x
          7mousey=ocx_y

          1//mouseUp事件
          2moveon=0

          posted @ 2007-04-11 17:21 在路上... 閱讀(2091) | 評論 (0)編輯 收藏

          網上有好多種struts+spring的集成思路,例如 http://dev.csdn.net/author/hql638/35679289a9a94e4f97e999508df064db.html
          這篇文章就介紹得很詳細,介紹了下面三種方法:

          使用 Spring 的 ActionSupport 類整合 Structs
          使用 Spring 的 DelegatingRequestProcessor 覆蓋 Struts 的 RequestProcessor
          將 Struts Action 管理委托給 Spring 框架
          其實在使用spring+struts時,我們往往就是想使用Ioc的特性,減少業務邏輯組件之間的依賴關系,通過高度靈活的XML配置提高業務的靈活性和擴展性。步驟如下:
          首先依舊加入spring的context plugin到struts-config.xml中

          < struts-config >
          ??
          < plug-in
          ?????????
          className ="org.springframework.web.struts.ContextLoaderPlugIn" >
          ?????
          < set-property? property ="contextConfigLocation"
          ?????????value
          ="/WEB-INF/applicationContext.xml" ? />
          ??
          </ plug-in >
          </ struts-config >


          然后包裝一下struts的DispatchAction,提供一個方法可以直接獲取Spring的WebApplicationContext對象。

          package ?com.cngd.dataview.action;?

          import ?org.apache.struts.actions.DispatchAction;
          import ?org.springframework.web.context.WebApplicationContext;
          import ?org.springframework.web.struts.DelegatingActionUtils;?

          /** ? */ /**
          ?*?Date:?2007-1-11?16:57:48
          ?*
          ?*?
          @author ?midea0978
          ?*?
          @version ?1.0
          ?
          */

          public ? class ?CommDispatchAction? extends ?DispatchAction? {
          ????
          protected ?WebApplicationContext?getAppContext()? {
          ????????WebApplicationContext?context?
          = ?DelegatingActionUtils.findRequiredWebApplicationContext( this .getServlet(),? null );
          ????????
          return ?context;
          ????}

          }
          ?


          然后自己的action可以直接從CommDispatchAction繼承通過this.getAppContext();獲取WebApplicationContext,這樣對原有的
          struts程序架構體系幾乎沒有太大的變化,同時可以引入spring的Ioc特性到現有系統中,這個與ActionSupport 中的
          getWebApplicationContext()方法類似了,但是可以不必拘泥于在兩者之間轉來轉去的。

          package ?com.cngd.dataview.action;?

          import ?com.spring.bo.WeatherService;
          import ?org.apache.log4j.Logger;
          import ?org.apache.struts.action.ActionForm;
          import ?org.apache.struts.action.ActionForward;
          import ?org.apache.struts.action.ActionMapping;
          import ?org.springframework.jdbc.core.JdbcTemplate;
          import ?org.springframework.jdbc.datasource.DriverManagerDataSource;
          import ?org.springframework.web.context.WebApplicationContext;?

          import ?javax.servlet.http.HttpServletRequest;
          import ?javax.servlet.http.HttpServletResponse;?

          /** ? */ /**
          ?*?Date:?2007-1-11?16:19:15
          ?*
          ?*?
          @author ?midea0978
          ?*?
          @version ?1.0
          ?
          */

          public ? class ?DataViewAction? extends ?CommDispatchAction? {
          ????
          static ?Logger?logger? = ?Logger.getLogger(DataViewAction. class .getName());?

          ????
          /** ? */ /**
          ?????*?
          @param ?actionMapping
          ?????*?
          @param ?actionForm
          ?????*?
          @param ?request
          ?????*?
          @param ?response
          ?????*?
          @return
          ?????*?
          @throws ?Exception
          ?????
          */

          ????
          public ?ActionForward?genReport(ActionMapping?actionMapping,?ActionForm?actionForm,?HttpServletRequest?request,?HttpServletResponse?response)
          ????????????
          throws ?Exception? {
          ????????String?yymm?
          = ?request.getParameter( " yymm " );
          ????????String?opname?
          = ?request.getParameter( " opname " );
          ????????logger.info(
          " 參數: " ? + ?yymm? + ? " , " ? + ?opname);
          ????????WebApplicationContext?ctx?
          = ? this .getAppContext();
          ????????WeatherService?srv?
          = ?(WeatherService)?ctx.getBean( " weatherServiceBean " );
          ????????srv.showWeather();
          ????????DriverManagerDataSource?ds?
          = ?(DriverManagerDataSource)?ctx.getBean( " datasource " );
          ????????JdbcTemplate?jt?
          = ? new ?JdbcTemplate(ds);
          ????????String?sql?
          = ? " select?count(*)?from?tab " ;
          ????????
          int ?rows? = ?jt.queryForInt(sql);
          ????????System.out.println(rows);
          ????????
          return ?actionMapping.findForward( " viewresult " );
          ????}
          ?


          }
          ?

          posted @ 2007-01-11 17:27 在路上... 閱讀(2204) | 評論 (7)編輯 收藏

          通常在weblogic的config.xml文件中,對于關鍵字符串、密碼會自動加密,例如LDAP密碼、數據庫JDBC連接池連接密碼等。通常加密之后前面會加上{3DES}的標識。
          3DES就是DES算法的增強,相關資料如下:
          1、DES(Data Encryption Standard)是一種經典的對稱算法。其數據分組長度為64位,使用的密鑰為64位,有效密鑰長度為56位(有8位用于奇偶校驗)。它由IBM公司在70年代開發,經過政府的加密標準篩選后,于1976年11月被美國政府采用,隨后被美國國家標準局和美國國家標準協會(American National Standard Institute, ANSI) 承認。

          該技術算法公開,在各行業有著廣泛的應用。DES算法從公布到現在已有20多年的歷史,由于計算機能力的飛速發展,DES的56位密鑰長度顯得有些太短了,已經有可能通過窮舉的

          方法來對其進行攻擊。但是除此以外,直到現在還沒有發現窮舉以外的能有效破譯DES的方法。
          2、DES算法現在已經不能提供足夠的安全性,因為其有效密鑰只有56位。因此,后來又提出了三重DES(或稱3DES),該方法的強度大約和112比特的密鑰強度相當。
          這種方法用兩個密鑰對明文進行三次運算。設兩個密鑰是K1和K2,其算法的步驟如圖3所示:
          1. 用密鑰K1進行DES加密。
          2. 用K2對步驟1的結果進行DES解密。
          3. 用步驟2的結果使用密鑰K1進行DES加密。

          首先需要找到加密的密鑰,根據BEA文檔可以發現是文件SerializedSystemIni.dat,查找一下安裝目錄就可以找到整個問見,通常系統管理員應該將該文件設置為不能直接訪問,以提高安全性。
          加密、解密的大致演示算法代碼如下,在WebLogic 9.2下面調試通過,運行編譯前應該先運行setExamplesEnv.cmd(參考)的環境變量,以保證相關類庫已經被引用了。對于低版本的WebLogic,例如WebLogic 7.0/8.1可能不能直接在命令行執行,因為SerializedSystemIni必須在控制臺Console環境下面才能調用,有興趣的朋友可以自行測試看看。
          ?1import?weblogic.security.internal.*;
          ?2import?weblogic.security.internal.encryption.EncryptionService;
          ?3import?weblogic.utils.encoders.BASE64Decoder;
          ?4import?weblogic.utils.encoders.BASE64Encoder;
          ?5public?class?CrackData?
          ?6{
          ?7????public?static?void?main(String[]?args)?
          ?8????{
          ?9????????byte[]?salt,keys;
          10????????salt=SerializedSystemIni.getSalt();
          11????????keys=SerializedSystemIni.getEncryptedSecretKey();
          12????????String?data="";
          13????????for(int?i=0;i<salt.length;i++){
          14????????????data+=salt[i]+",";
          15????????}

          16????????System.out.println("salt:"+data);
          17????????data="";
          18????????for(int?i=0;i<keys.length;i++){
          19????????????data+=keys[i]+",";
          20????????}

          21????????System.out.println("Key:"+data);
          22????????//EncryptionService?svr=SerializedSystemIni.getExistingEncryptionService();
          23????????EncryptionService?svr=SerializedSystemIni.getEncryptionService();
          24????????System.out.println(svr);
          25????????System.out.println(svr.getAlgorithm());
          26????????if(args.length>1){
          27????????????if(args[0].equals("encrypt")){
          28????????????????byte[]?edata=svr.encryptString(args[1]);
          29????????????????String?s?=?(new?BASE64Encoder()).encodeBuffer(edata);
          30????????????????System.out.println("Encode:"+s);
          31????????????}

          32????????????if(args[0].equals("decrypt")){
          33????????????????try{
          34????????????????byte[]?edata?=?(new?BASE64Decoder()).decodeBuffer(args[1]);
          35????????????????String?txt=svr.decryptString(edata);
          36????????????????System.out.println("Decode:"+txt);
          37????????????????}
          catch(Exception?ex){
          38????????????????????ex.printStackTrace();
          39????????????????}

          40????????????}

          41????????}

          42????????
          43????}

          44}

          45

          測試運行結果如下:
          root@srdsh?#?/rdsh/bea92/jdk150_04/bin/java?CrackData?decrypt?nMttUc5jNe9RNJXslXjbJQ==
          -86,123,19,107,
          -42,-28,-75,-100,31,0,25,-93,75,115,40,-3,-15,42,-53,41,-25,-13,-6,8,36,85,-81,2
          8,66,-110,31,38,-29,-79,-44,-48,
          weblogic.security.internal.encryption.JSafeEncryptionServiceImpl@199f91c
          3DES
          Decode:weblogic
          root@srdsh?#?
          /rdsh/bea92/jdk150_04/bin/java?CrackData?decrypt?erzD515N5z2zSnOk7uG1cYQthCbYA5OU6Bw+Zt5BsjPruTQaOZASh+ZZW4kuBGvfbZ2BXWSACbgOZ2MY4bHtpOPps/6WfZJg
          -86,123,19,107,
          -42,-28,-75,-100,31,0,25,-93,75,115,40,-3,-15,42,-53,41,-25,-13,-6,8,36,85,-81,2
          8,66,-110,31,38,-29,-79,-44,-48,
          weblogic.security.internal.encryption.JSafeEncryptionServiceImpl@199f91c
          3DES
          Decode:
          0xa778f572127d2282247ec653147c35d4e4040aca016c6d1e06ab325af5798fca
          root@srdsh?#

          posted @ 2006-09-07 12:35 在路上... 閱讀(8530) | 評論 (1)編輯 收藏

          在安裝了Oracle 9i之后XDB的http默認占用了8080,ftp會占用2100端口,其實XDB就是XML Database提供的一種服務,在oracle中有一個package可以用來維護管理該服務的配置信息。這個包就是dbms_xdb.
          解決方法有下面幾種:
          1、sqlplus "/ as sysdba"連入數據庫
          SQL> -- Change the HTTP/WEBDAV port from 8080 to 8081
            SQL> call dbms_xdb.cfg_update(updateXML(
              2        dbms_xdb.cfg_get()
              3      , '/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()'
              4      , 8081))
              5  /

            Call completed.


            SQL> -- Change the FTP port from 2100 to 2111
            SQL> call dbms_xdb.cfg_update(updateXML(
              2         dbms_xdb.cfg_get()
              3       , '/xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port/text()'
              4       , 2111))
              5  /

            Call completed.


            SQL> COMMIT;

            Commit complete.


            SQL> EXEC dbms_xdb.cfg_refresh;

            PL/SQL procedure successfully completed.


            SQL> -- Verify the change
            SQL> set long 100000
            SQL> set pagesize 9000
            SQL> SELECT dbms_xdb.cfg_get FROM dual;
          2、移除XDB服務,將實例信息去掉
          dispatchers='(PROTOCOL=TCP) (SERVICE=<ORACLE_SID>XDB)'

          3、使用Oracle Enterprise Manager 中的的XML Database 配置信息中修改掉端口就可以了

          posted @ 2005-12-22 13:37 在路上... 閱讀(902) | 評論 (1)編輯 收藏

          僅列出標題
          共4頁: 上一頁 1 2 3 4 下一頁 
          主站蜘蛛池模板: 伊宁县| 常德市| 邵东县| 鸡西市| 吉安县| 南和县| 宁陵县| 清涧县| 铜鼓县| 菏泽市| 重庆市| 溆浦县| 兖州市| 高平市| 淮滨县| 阿拉善左旗| 邵武市| 文成县| 太白县| 台中县| 大埔县| 治多县| 漠河县| 临海市| 武功县| 抚宁县| 昌乐县| 神农架林区| 丰都县| 曲水县| 红原县| 昭通市| 宜君县| 绿春县| 衡东县| 武义县| 景泰县| 长顺县| 吴川市| 林州市| 昆山市|