• 首页
  • 小学语文
  • 中学语文
  • 中学英语
  • 免费论文
  • 教学随笔
  • 学生作文
  • 综合考试
  • 试题教案
  • 育儿话题
  • 教学资源
  • 编程技术
  • 博客
  • 在JSP中实现DES加密解密的例子

    日期:2003-03-15  地址:  作者:
     

    在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);
                 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);
               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>

    对 在JSP中实现DES加密解密的例子 文章的评论    [查看网友评论]

    验证码:
    匿名发表: