在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. */ 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>
|