Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 318|回复: 0

[jsp学习]在JSP中实现DES加密解密的例子

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-10-1 04:59:27 | 显示全部楼层 |阅读模式
    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>
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-1 22:39 , Processed in 0.365408 second(s), 46 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表