快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

DES 加解密的封装和 使用的例子


原创: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();    }}




返回类别: 教程
上一教程: 《Java编程思想》(第二版)第07章:多态(polymorphism)
下一教程: JavaServer Faces (JSF) vs Struts

您可以阅读与"DES 加解密的封装和 使用的例子"相关的教程:
· Java的封装类
· JSP+BEANS实现读取数据库的例子
· 使用UML编写Java 设计模式例子 FactoryMethod Pattern
· 分别用java Application 及 JSP调用javaBean的例子
· 在JSP中用BEAN封装常用的功能
    微笑服务 优质保证 索取样品