12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- package com.its.utils;
- import javax.crypto.BadPaddingException;
- import javax.crypto.Cipher;
- import javax.crypto.IllegalBlockSizeException;
- import javax.crypto.NoSuchPaddingException;
- import javax.crypto.spec.IvParameterSpec;
- import javax.crypto.spec.SecretKeySpec;
- import java.io.UnsupportedEncodingException;
- import java.security.*;
- public class AES256Util {
- private String iv;
- private Key keySpec;
-
- public static String DEFAULT_KEY = "qjeockd!csp#qs)x";
-
- public AES256Util(String key) throws UnsupportedEncodingException {
- this.iv = key.substring(0, 16);
-
- byte[] keyBytes = new byte[16];
- byte[] b = key.getBytes("UTF-8");
- int len = b.length;
- if (len > keyBytes.length) {
- len = keyBytes.length;
- }
- System.arraycopy(b, 0, keyBytes, 0, len);
- SecretKeySpec keySpec = new SecretKeySpec(keyBytes, "AES");
- this.keySpec = keySpec;
- }
- // public String aesEncode2(String str) throws UnsupportedEncodingException, NoSuchAlgorithmException,
- // NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException,
- // IllegalBlockSizeException, BadPaddingException{
- // Cipher c = Cipher.getInstance("AES/CBC/PKCS5Padding");
- // c.init(Cipher.ENCRYPT_MODE, keySpec, new IvParameterSpec(iv.getBytes()));
- // byte[] encrypted = c.doFinal(str.getBytes("UTF-8"));
- // return new String(Base64.encodeBase64(encrypted));
- // }
- public byte[] aesEncode(String str) throws UnsupportedEncodingException, NoSuchAlgorithmException,
- NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException,
- IllegalBlockSizeException, BadPaddingException{
- Cipher c = Cipher.getInstance("AES/CBC/PKCS5Padding");
- c.init(Cipher.ENCRYPT_MODE, keySpec, new IvParameterSpec(iv.getBytes()));
- byte[] encrypted = c.doFinal(str.getBytes("UTF-8"));
- return encrypted;
- }
- // public String aesDecode(String str) throws UnsupportedEncodingException, NoSuchAlgorithmException,
- // NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException,
- // IllegalBlockSizeException, BadPaddingException {
- // Cipher c = Cipher.getInstance("AES/CBC/PKCS5Padding");
- // c.init(Cipher.DECRYPT_MODE, keySpec, new IvParameterSpec(iv.getBytes("UTF-8")));
- // byte[] byteStr = Base64.decodeBase64(str.getBytes());
- // return new String(c.doFinal(byteStr),"UTF-8");
- // }
- public static String encryptSHA256(String str) {
- String SHA = "";
- try {
- MessageDigest msgDigest = MessageDigest.getInstance("SHA-256");
- msgDigest.update(str.getBytes());
- byte byteData[] = msgDigest.digest();
- StringBuffer builder = new StringBuffer();
- for (byte b : byteData) {
- builder.append(String.format("%02x", b));
- }
- // for(int i=0; i < byteData.length; i++) {
- // builder.append(Integer.toString((byteData[i]&0xff) + 0x100, 16).substring(1));
- // }
- SHA = builder.toString();
- } catch (NoSuchAlgorithmException e) {
- SHA = "";
- }
- return SHA;
- }
- }
|