package com.juns.wechat.common; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; public class DES { private static byte[] iv = { 1, 2, 3, 4, 5, 6, 7, 8 }; public static String strkey = "%%d"; /** * 数据加密 * * @param encryptString * @return * @throws Exception */ public static String encryptDES(String encryptString) throws Exception { IvParameterSpec zeroIv = new IvParameterSpec(iv); SecretKeySpec key = new SecretKeySpec(getkeys().getBytes(), "DES"); Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, key, zeroIv); byte[] encryptedData = cipher.doFinal(encryptString.getBytes()); return BASE64.encode(encryptedData); } /** * 数据解密 * * @param decryptString * @return * @throws Exception */ public static String decryptDES(String decryptString) throws Exception { byte[] byteMi = new BASE64().decode(decryptString); IvParameterSpec zeroIv = new IvParameterSpec(iv); SecretKeySpec key = new SecretKeySpec(getkeys().getBytes(), "DES"); Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); cipher.init(Cipher.DECRYPT_MODE, key, zeroIv); byte decryptedData[] = cipher.doFinal(byteMi); return new String(decryptedData); } public static String getkeys() { return BASE64.strkey2; } // MD5加密 private static final char HEX_DIGITS[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; public static String strkey3 = "*(&"; public static String toHexString(byte[] b) { // String to byte StringBuilder sb = new StringBuilder(b.length * 2); for (int i = 0; i < b.length; i++) { sb.append(HEX_DIGITS[(b[i] & 0xf0) >>> 4]); sb.append(HEX_DIGITS[b[i] & 0x0f]); } return sb.toString(); } public static String md5(String s) { try { // Create MD5 Hash MessageDigest digest = java.security.MessageDigest .getInstance("MD5"); digest.update(s.getBytes()); byte[] messageDigest = digest.digest(); return toHexString(messageDigest).toLowerCase(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); return ""; } } /** * 密码MD5 调用此方法 * * @param s * @return */ public static String md5Pwd(String s) { return md5("hJy*()" + s); } }