posts - 33, comments - 46, trackbacks - 0, articles - 2
          通常在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?#

          Feedback

          # re: WebLogic配置文件Config.xml中的{3DES}加密字符串的解密思路[未登錄]  回復  更多評論   

          2009-11-24 10:16 by java
          你好 我是一個初學的,上述的程序怎么在window下運行, 我已將安裝weblogic9.2
          謝謝
          主站蜘蛛池模板: 凉城县| 襄城县| 曲麻莱县| 建始县| 临汾市| 涞源县| 武汉市| 丹寨县| 东山县| 临武县| 衡南县| 西城区| 和顺县| 磴口县| 龙江县| 铅山县| 崇明县| 合肥市| 朔州市| 邯郸县| 高雄县| 手机| 永福县| 高密市| 锡林郭勒盟| 延寿县| 新疆| 施秉县| 菏泽市| 凉城县| 韶关市| 永年县| 青岛市| 新营市| 福清市| 乐山市| 洱源县| 图片| 井陉县| 准格尔旗| 沛县|