package com.jtgh.yjpt.common; import java.security.SecureRandom; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; public class Des { /** * @param args */ public static void main(String[] args) { try { System.out.println(encrypt("123456")); System.out.println(decrypt(encrypt("123456"))); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * DES�㷨��Կ */ private static final String DES_KEY = "yjpt_gkj"; /** * ��ݼ��ܣ��㷨��DES�� * * @param data * Ҫ���м��ܵ���� * @return ���ܺ����� */ public static String encrypt(String data) { String encryptedData = null; try { // DES�㷨Ҫ����һ�������ε������Դ SecureRandom sr = new SecureRandom(); DESKeySpec deskey = new DESKeySpec(DES_KEY.getBytes()); // ����һ���ܳ׹�����Ȼ�������DESKeySpecת����һ��SecretKey���� SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); SecretKey key = keyFactory.generateSecret(deskey); // ���ܶ��� Cipher cipher = Cipher.getInstance("DES"); cipher.init(Cipher.ENCRYPT_MODE, key, sr); // ���ܣ������ֽ����������ַ� encryptedData = new sun.misc.BASE64Encoder().encode(cipher .doFinal(data.getBytes())); } catch (Exception e) { // log.error("���ܴ��󣬴�����Ϣ��", e); throw new RuntimeException("���ܴ��󣬴�����Ϣ��", e); } return encryptedData; } /** * ��ݽ��ܣ��㷨��DES�� * * @param cryptData * ������� * @return ���ܺ����� */ public static String decrypt(String cryptData) { String decryptedData = null; try { // DES�㷨Ҫ����һ�������ε������Դ SecureRandom sr = new SecureRandom(); DESKeySpec deskey = new DESKeySpec(DES_KEY.getBytes()); // ����һ���ܳ׹�����Ȼ�������DESKeySpecת����һ��SecretKey���� SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); SecretKey key = keyFactory.generateSecret(deskey); // ���ܶ��� Cipher cipher = Cipher.getInstance("DES"); cipher.init(Cipher.DECRYPT_MODE, key, sr); // ���ַ����Ϊ�ֽ����飬������ decryptedData = new String( cipher.doFinal(new sun.misc.BASE64Decoder() .decodeBuffer(cryptData))); } catch (Exception e) { // log.error("���ܴ��󣬴�����Ϣ��", e); throw new RuntimeException("���ܴ��󣬴�����Ϣ��", e); } return decryptedData; } }