用户名: 密码: 免费注册 忘记密码? 网站地图 | 加入收藏 | 设为首页
首页 | 新闻 | 工具 | 系统 | 办公 | 聊天 | 多媒体 | 网页 | 运营 | 平面 | 欣赏 | 数据库 | 程序 | 服务器 | 组网
网页 | 3dmax | Ghost | Windows Xp| Dreamweaver | photoshop | Flash | office | Alexa | Css | QQ | Asp | PHP | Jsp | Access
Flash MX 2004入门 | 网站推广策略 | CorelDRAW入门 | ASP学习 | 网站建设大师功 | Word入门
  iTbulo.com > 学院 > 程序开发教程 > JSP教程 > Jsp开发技巧 > 文章正文
DES 加解密的封装和 使用的例子
iTbulo.COM 2005-4-13 佚名()

原创:zhouxianli1978@msn.com ,欢迎喜欢Java的网友加我



DES加密封装

package org.jtool.desutils;import java.security.SecureRandom;import javax.crypto.*;import javax.crypto.spec.DESKeySpec;public class DESEncrypt {    private byte[] desKey;    public DESEncrypt(byte[] desKey) {        this.desKey = desKey;    }    public byte[] doEncrypt(byte[] plainText) throws Exception {        //      DES算法要求有一个可信任的随机数源        SecureRandom sr = new SecureRandom();        byte rawKeyData[] = desKey;/* 用某种方法获得密匙数据 */        // 从原始密匙数据创建DESKeySpec对象        DESKeySpec dks = new DESKeySpec(rawKeyData);        // 创建一个密匙工厂,然后用它把DESKeySpec转换成        // 一个SecretKey对象        SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");        SecretKey key = keyFactory.generateSecret(dks);        // Cipher对象实际完成加密操作        Cipher cipher = Cipher.getInstance("DES");        // 用密匙初始化Cipher对象        cipher.init(Cipher.ENCRYPT_MODE, key, sr);        // 现在,获取数据并加密        byte data[] = plainText;/* 用某种方法获取数据 */        // 正式执行加密操作        byte encryptedData[] = cipher.doFinal(data);        return encryptedData;    }}



DES解密封装

package org.jtool.desutils;import java.security.SecureRandom;import javax.crypto.*;import javax.crypto.spec.DESKeySpec;public class DESDecrypt {    private byte[] desKey;    public DESDecrypt(byte[] desKey) {        this.desKey = desKey;    }    public byte[] doDecrypt(byte[] encryptText) throws Exception {        //      DES算法要求有一个可信任的随机数源        SecureRandom sr = new SecureRandom();        byte rawKeyData[] = desKey; /* 用某种方法获取原始密匙数据 */        // 从原始密匙数据创建一个DESKeySpec对象        DESKeySpec dks = new DESKeySpec(rawKeyData);        // 创建一个密匙工厂,然后用它把DESKeySpec对象转换成        // 一个SecretKey对象        SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");        SecretKey key = keyFactory.generateSecret(dks);        // Cipher对象实际完成解密操作        Cipher cipher = Cipher.getInstance("DES");        // 用密匙初始化Cipher对象        cipher.init(Cipher.DECRYPT_MODE, key, sr);        // 现在,获取数据并解密        byte encryptedData[] = encryptText;/* 获得经过加密的数据 */        // 正式执行解密操作        byte decryptedData[] = cipher.doFinal(encryptedData);        return decryptedData;    }}



DES加解密使用样例

package org.jtool.desutils;/** *  */public class DESTest {    public static void main(String[] args) throws Exception {        String key = "ABCDEFGH";        String value = "AABBCCDDEE";        DESEncrypt desEncrypt = new DESEncrypt(key.getBytes());        byte[] encryptText = desEncrypt.doEncrypt(value.getBytes());        System.out.println("doEncrypt - " + toHexString(encryptText));        System.out.println("doEncrypt - " + new String(encryptText));        DESDecrypt desDecrypt = new DESDecrypt(key.getBytes());        byte[] decryptText = desDecrypt.doDecrypt(encryptText);        System.out.println("doDecrypt - " + new String(decryptText));        System.out.println("doDecrypt - " + toHexString(decryptText));    }    /**     * 16进制显示数据     *      * @param value 字节数组     * @return     */    public static String toHexString(byte[] value) {        String newString = "";        for (int i = 0; i < value.length; i++) {            byte b = value[i];            String str = Integer.toHexString(b);            if (str.length() > 2) {                str = str.substring(str.length() - 2);            }            if (str.length() < 2) {                str = "0" + str;            }            newString += str;        }        return newString.toUpperCase();    }}
文章搜索
相关资讯
相关文章 相关下载
米兰2006拾影-Driade(2)
米兰2006拾影-Driade(1)
富士通GOOD DESIGN获奖作品精选
Jan Borchies家居设计(3)
Jan Borchies家居设计(2)
焦点信息