隨筆-57  評論-202  文章-17  trackbacks-0

                從JDK1.4開始,SUN提供了JCE包,可以實(shí)現(xiàn)多種加密算法。下面是我的一個用JCE進(jìn)行DES加密解密的程序:

          package sample;

          import java.security.
          *;
          import javax.crypto.
          *;

          /**
           * <p>Title: </p>
           *
           * <p>Description: </p>
           *
           * <p>Copyright: Copyright (c) 2005</p>
           *
           * <p>Company: </p>
           *
           * @author George Hill
           * @version 1.0
           
          */


          public class Test {
            
            
          // 加密使用的Key
            private SecretKey key;
            
            
          // 加密算法,JCE可用DES,DESede和Blowfish
            private static final String algorithm = "DES";
            
            
          public Test() throws NoSuchAlgorithmException {
              KeyGenerator generator 
          = KeyGenerator.getInstance(algorithm);
              key 
          = generator.generateKey();
            }

            
            
          /**
             * 利用DES算法加密
             * @param s String 需要加密的字符串
             * @return String 加密后的字符串
             * @throws Exception
             
          */

            
          public String encryptData(String s) throws Exception {
              Cipher c 
          = Cipher.getInstance(algorithm);
              c.init(Cipher.ENCRYPT_MODE, key);

              
          return new String(c.doFinal(s.getBytes()));
            }

            
            
          /**
             * 利用DES算法解密
             * @param s String 需要解密的字符串
             * @return String 解密后的字符串
             * @throws Exception
             
          */

            
          public String decryptData(String s) throws Exception {
              Cipher c 
          = Cipher.getInstance(algorithm);
              c.init(Cipher.DECRYPT_MODE, key);

              
          return new String(c.doFinal(s.getBytes()));
            }

            
            
          /**
             * 測試程序
             * @param args String[]
             * @throws Exception
             
          */

            
          public static void main(String[] args) throws Exception {
              String s 
          = "Hello";
              Test test 
          = new Test();
              String encrypt 
          = test.encryptData(s);
              System.
          out.println(encrypt);
              String decrypt 
          = test.decryptData(encrypt);
              System.
          out.println(decrypt);
            }

          }



                在實(shí)際的使用中,往往需要對加密后的byte數(shù)組進(jìn)行轉(zhuǎn)換,可以自己實(shí)現(xiàn)轉(zhuǎn)換,或者用一些第三方的API。
          posted on 2005-05-18 11:55 小米 閱讀(2637) 評論(4)  編輯  收藏 所屬分類: Java

          評論:
          # re: 如何使用JCE的DES進(jìn)行加密解密 2005-07-24 20:17 | lzcarl
          高手,你好
          我最近也在用jce寫程序
          可配置上出了問題
          用KeyGenerator不管生成什么類型的key
          都提示NoSuchAlgorithm
          請問高手是怎么配置的啊
          謝謝。  回復(fù)  更多評論
            
          # re: 如何使用JCE的DES進(jìn)行加密解密 2005-07-25 09:57 | 小米
          高手不敢當(dāng)。請問你設(shè)定的Algorithm是什么?我想錯誤信息應(yīng)該提示的很清楚,你可以具體看看錯誤信息的意思,或者查查相關(guān)的文檔。  回復(fù)  更多評論
            
          # re: 如何使用JCE的DES進(jìn)行加密解密 2005-07-25 15:24 | lzcarl
          我設(shè)定的algorithm是des
          昨天在jbuilder下還能用
          換到eclipse下一樣的設(shè)定方法就不行了
          郁悶  回復(fù)  更多評論
            
          # re: 如何使用JCE的DES進(jìn)行加密解密 2005-07-25 16:13 | 小米
          JBuilder和Eclipse下使用的JDK是否是一樣的?你可以把你的源代碼貼上來看看么?  回復(fù)  更多評論
            
          主站蜘蛛池模板: 资兴市| 徐闻县| 鲁甸县| 鄂托克前旗| 电白县| 湖口县| 喀喇| 禹州市| 尼勒克县| 德惠市| 夏邑县| 措勤县| 宁城县| 万全县| 扬州市| 黎城县| 沁源县| 宝坻区| 梁河县| 武穴市| 庐江县| 中宁县| 连州市| 怀远县| 西吉县| 长葛市| 隆林| 宜昌市| 扎兰屯市| 武隆县| 苏尼特右旗| 固原市| 武邑县| 闸北区| 开江县| 景宁| 柯坪县| 灯塔市| 华安县| 淮北市| 东丰县|