Here you can find the source of aesDecrypt(String encryptStr, String decryptKey)
public static String aesDecrypt(String encryptStr, String decryptKey)
//package com.java2s; /*/* ww w . ja va2 s . c om*/ * Project Name: zc-collect-common * File Name: EncryptUtil.java * Class Name: EncryptUtil * * Copyright 2014 Hengtian Software Inc * * Licensed under the Hengtiansoft * * http://www.hengtiansoft.com * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * implied. * See the License for the specific language governing permissions and * limitations under the License. */ import java.security.SecureRandom; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.spec.SecretKeySpec; public class Main { public static String aesDecrypt(String encryptStr, String decryptKey) { return aesDecryptByBytes(parseHexStr2Byte(encryptStr), decryptKey); } public static String aesDecryptByBytes(byte[] encryptBytes, String decryptKey) { try { SecureRandom random = SecureRandom.getInstance("SHA1PRNG"); random.setSeed(decryptKey.getBytes()); KeyGenerator kgen = KeyGenerator.getInstance("AES"); kgen.init(128, random); Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(kgen.generateKey().getEncoded(), "AES")); byte[] decryptBytes = cipher.doFinal(encryptBytes); return new String(decryptBytes); } catch (Exception e) { } return null; } public static byte[] parseHexStr2Byte(String hexStr) { if (hexStr.length() < 1) return null; byte[] result = new byte[hexStr.length() / 2]; for (int i = 0; i < hexStr.length() / 2; i++) { int high = Integer.parseInt(hexStr.substring(i * 2, i * 2 + 1), 16); int low = Integer.parseInt(hexStr.substring(i * 2 + 1, i * 2 + 2), 16); result[i] = (byte) (high * 16 + low); } return result; } }