Dict.CN 在線詞典, 英語學習, 在線翻譯

          都市淘沙者

          荔枝FM Everyone can be host

          統計

          留言簿(23)

          積分與排名

          優秀學習網站

          友情連接

          閱讀排行榜

          評論排行榜

          在JSP中實現DES加密解密的例子

          DES.java


          package?Lion.Security.Cryptography;

          import?javax.crypto.Cipher;
          import?javax.crypto.KeyGenerator;
          import?javax.crypto.NoSuchPaddingException;
          import?javax.crypto.SecretKey;
          import?java.security.NoSuchAlgorithmException;
          import?java.security.Security;
          /**
          ?*?DES加密的,文件中共有兩個方法,加密、解密
          ?*?@author?Lion
          ?*?@author?www.lionsky.net
          ?*/
          public?class?DES?{
          ????private?String?Algorithm?=?"DES";//加密算法的名稱
          ????private?KeyGenerator?keygen;//密鑰生成器
          ????private?SecretKey?deskey;//密鑰
          ????private?Cipher?c;//密碼器
          ????private?byte[]?cipherByte;

          ????/**
          ?????*?初始化?DES?實例
          ?????*/
          ????public?DES()?{
          ??????????init();
          ????}

          ????public?void?init()?{
          ????????Security.addProvider(new?com.sun.crypto.provider.SunJCE());
          ????????try?{
          ???????????????keygen?=?KeyGenerator.getInstance(Algorithm);
          ???????????????deskey?=?keygen.generateKey();
          ???????????????c?=?Cipher.getInstance(Algorithm);
          ?????????}
          ?????????catch(NoSuchAlgorithmException?ex){
          ????????????ex.printStackTrace();
          ????????}
          ?????????catch(NoSuchPaddingException?ex){
          ????????????ex.printStackTrace();
          ????????}
          ???????}

          ????/**
          ?????*?對?String?進行加密
          ?????*?@param?str?要加密的數據
          ?????*?@return?返回加密后的?byte?數組
          ?????*/
          ?????public?byte[]?createEncryptor(String?str)?{
          ????????try?{
          ?????????????c.init(Cipher.ENCRYPT_MODE,?deskey);//初始化密碼器,用密鑰deskey,進入加密模式
          ?????????????cipherByte?=?c.doFinal(str.getBytes());//加密
          ????????}
          ????????catch(java.security.InvalidKeyException?ex){
          ????????????ex.printStackTrace();
          ????????}
          ????????catch(javax.crypto.BadPaddingException?ex){
          ????????????ex.printStackTrace();
          ????????}
          ????????catch(javax.crypto.IllegalBlockSizeException?ex){
          ????????????ex.printStackTrace();
          ????????}
          ????????return?cipherByte;
          ?????}

          ????/**
          ?????*?對?Byte?數組進行解密
          ?????*?@param?buff?要解密的數據
          ?????*?@return?返回加密后的?String
          ?????*/
          ?????public?String?createDecryptor(byte[]?buff)?{
          ????????try?{
          ???????????c.init(Cipher.DECRYPT_MODE,?deskey);//初始化密碼器,用密鑰deskey,進入解密模式
          ???????????cipherByte?=?c.doFinal(buff);
          ????????}
          ????????catch(java.security.InvalidKeyException?ex){
          ????????????ex.printStackTrace();
          ????????}
          ????????catch(javax.crypto.BadPaddingException?ex){
          ????????????ex.printStackTrace();
          ????????}
          ????????catch(javax.crypto.IllegalBlockSizeException?ex){
          ????????????ex.printStackTrace();
          ????????}
          ????????return?(new?String(cipherByte));
          ?????}
          }

          ?

          DES.jsp


          <%@?page?contentType="text/html;?charset=gb2312"?%>
          <jsp:useBean?id="DES"?scope="page"?class="Lion.Security.Cryptography.DES"?/>
          <html>
          <head><title>DES?File</title></head>

          <body?bgcolor="#FFFFFF">
          <div?align="center"><center>
          <%
          String?Test?=?request.getParameter("Test");
          if(Test==null?||?Test.equals(""))?{
          %>
          ????<form?name="form"?method="post">
          ????<input?type="text"?name="Test"?size="25"?value=""/>
          ????<input?type="submit"?name="button"?value="?確定?"/>
          ????</form>
          ????<%
          }else{
          ????????????out.println("加密前的數據:"+Test?+"<br/>");
          ????????????out.println("加密后的數據:"+DES.createEncryptor(Test)?+"<br/>");
          ????????????out.println("解密后的數據:"+DES.createDecryptor(DES.createEncryptor(Test))?+"<br/>");
          ??????}
          ????%>
          </center></div>
          </body>
          </html>

          posted on 2006-04-13 17:40 都市淘沙者 閱讀(1451) 評論(2)  編輯  收藏 所屬分類: JSP/PHP

          評論

          # 別發了 我看了一天全是這個沒用的東西 2006-08-18 15:09 別浪費時間

          這個加密后的字符串 就不能轉換為byte[]了 謝謝 也就是說 秘文不能持久化  回復  更多評論   

          # re: 在JSP中實現DES加密解密的例子 2015-11-23 23:31 大哥大

          adfaf  回復  更多評論   

          主站蜘蛛池模板: 通海县| 穆棱市| 婺源县| 保山市| 郑州市| 萝北县| 大渡口区| 五寨县| 咸宁市| 定襄县| 曲周县| 全南县| 肥城市| 班玛县| 剑河县| 彝良县| 盐津县| 台山市| 大渡口区| 扶绥县| 嘉荫县| 湟中县| 梓潼县| 四平市| 微博| 古丈县| 辽宁省| 县级市| 云南省| 兰考县| 九龙县| 邯郸市| 乐清市| 石门县| 娱乐| 南皮县| 蚌埠市| 洞头县| 永嘉县| 克山县| 绥棱县|