68 lines
2.1 KiB
Java
68 lines
2.1 KiB
Java
package com.saye.hrs.commons.encrypt;
|
||
|
||
import org.apache.commons.codec.binary.Base64;
|
||
|
||
import java.io.UnsupportedEncodingException;
|
||
import java.security.MessageDigest;
|
||
import java.security.NoSuchAlgorithmException;
|
||
|
||
import javax.crypto.Cipher;
|
||
import javax.crypto.spec.IvParameterSpec;
|
||
import javax.crypto.spec.SecretKeySpec;
|
||
|
||
public class EncryptUtil {
|
||
|
||
// AES ecb模式解密 key:秘钥 initVector:偏移量 encrypted:加密内容
|
||
public static String decrypt(String key,String initVector,String encrypted) {
|
||
try {
|
||
IvParameterSpec iv = new IvParameterSpec(initVector.getBytes("UTF-8"));
|
||
SecretKeySpec skeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES");
|
||
|
||
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");
|
||
cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);
|
||
byte[] original = cipher.doFinal(Base64.decodeBase64(encrypted));
|
||
|
||
return new String(original);
|
||
} catch (Exception ex) {
|
||
ex.printStackTrace();
|
||
}
|
||
return null;
|
||
}
|
||
|
||
public static void main(String[] args) throws Exception {
|
||
System.out.println(decrypt("a6xdabhysfescfbu","encryptionIntVec","oYzamqnnyJ8GG6646PDYBQ=="));
|
||
}
|
||
|
||
public static String getSHA256Str(String str){
|
||
MessageDigest messageDigest;
|
||
String encodeStr = "";
|
||
try {
|
||
messageDigest = MessageDigest.getInstance("SHA-256");
|
||
messageDigest.update(str.getBytes("UTF-8"));
|
||
encodeStr = byte2Hex(messageDigest.digest());
|
||
} catch (NoSuchAlgorithmException e) {
|
||
e.printStackTrace();
|
||
} catch (UnsupportedEncodingException e) {
|
||
e.printStackTrace();
|
||
}
|
||
return encodeStr;
|
||
}
|
||
/**
|
||
* 将byte转为16进制
|
||
* @param bytes
|
||
* @return
|
||
*/
|
||
private static String byte2Hex(byte[] bytes){
|
||
StringBuffer stringBuffer = new StringBuffer();
|
||
String temp = null;
|
||
for (int i=0;i<bytes.length;i++){
|
||
temp = Integer.toHexString(bytes[i] & 0xFF);
|
||
if (temp.length()==1){
|
||
//1得到一位的进行补0操作
|
||
stringBuffer.append("0");
|
||
}
|
||
stringBuffer.append(temp);
|
||
}
|
||
return stringBuffer.toString();
|
||
}
|
||
} |