欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java DES加密解密,javades加密解密,import java.

来源: javaer 分享于  点击 33835 次 点评:12

Java DES加密解密,javades加密解密,import java.


import java.security.SecureRandom;import javax.crypto.Cipher;import javax.crypto.SecretKey;import javax.crypto.SecretKeyFactory;import javax.crypto.spec.DESKeySpec;public class CryptKit {    private final static String DES = "DES";    public static void main(String args[]) throws Exception {        String str = encrypt("The cold night", "12345678");        System.out.println(str);        String str2 = decrypt("63B121C4EA212F8BC74E8113BDFBFB81", "12345678");        System.out.println(str2);    }    // 加密    public static byte[] encrypt(byte[] data, byte[] key) throws Exception {        Cipher cipher = Cipher.getInstance(DES);        DESKeySpec ds = new DESKeySpec(key);        SecureRandom sr = new SecureRandom();        SecretKeyFactory skfactory = SecretKeyFactory.getInstance(DES);        SecretKey skey = skfactory.generateSecret(ds);        cipher.init(Cipher.ENCRYPT_MODE, skey, sr);        byte[] b = cipher.doFinal(data);        return b;    }    // 加密    public static String encrypt(String data, String key) throws Exception {        return byte2hex(encrypt(data.getBytes(), key.getBytes()));    }    // 解密    public static byte[] decrypt(byte[] data, byte[] key) throws Exception {        Cipher cipher = Cipher.getInstance(DES);        DESKeySpec ds = new DESKeySpec(key);        SecureRandom sr = new SecureRandom();        SecretKeyFactory skfactory = SecretKeyFactory.getInstance(DES);        SecretKey skey = skfactory.generateSecret(ds);        cipher.init(Cipher.DECRYPT_MODE, skey, sr);        return cipher.doFinal(data);    }    // 解密    public static String decrypt(String data, String key) throws Exception {        return new String(decrypt(hex2byte(data.getBytes()), key.getBytes()));    }    private static String byte2hex(byte[] b) {        StringBuilder hs = new StringBuilder();        String stmp;        for (int n = 0; b != null &amp;&amp; n < b.length; n++) {            stmp = Integer.toHexString(b[n] &amp; 0XFF);            if (stmp.length() == 1)                hs.append('0');            hs.append(stmp);        }        return hs.toString().toUpperCase();    }    private static byte[] hex2byte(byte[] b) {        if ((b.length % 2) != 0)            throw new IllegalArgumentException();        byte[] b2 = new byte[b.length / 2];        for (int n = 0; n < b.length; n += 2) {            String item = new String(b, n, 2);            b2[n / 2] = (byte) Integer.parseInt(item, 16);        }        return b2;    }
相关栏目:

用户点评