| | |
| | | import javax.crypto.Cipher; |
| | | import javax.crypto.spec.SecretKeySpec; |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.util.regex.Pattern; |
| | | |
| | | /** |
| | | * mybatis数据库的AES_ENCRYPT(加密)和AES_DECRYPT(解密) |
| | |
| | | decryptCipher.init(Cipher.DECRYPT_MODE, generateMySQLAESKey(aesKey, encoding)); |
| | | data = new String(decryptCipher.doFinal(Hex.decodeHex(data.toCharArray()))); |
| | | }catch (Exception e){ |
| | | throw new RuntimeException("解密失败:"+e.getMessage()); |
| | | throw new RuntimeException(e); |
| | | } |
| | | return data; |
| | | } |
| | |
| | | } |
| | | data = builder.toString().toUpperCase(); |
| | | } catch (Exception e) { |
| | | throw new RuntimeException("加密失败:"+e.getMessage()); |
| | | throw new RuntimeException(e); |
| | | } |
| | | return data; |
| | | } |
| | | |
| | | /** |
| | | * 判断是不是十六进制的字符串(字母是大写的) |
| | | * @param str 需要判断的字符串 |
| | | * @return true or false |
| | | */ |
| | | public static boolean isHexStrValid(String str) { |
| | | String pattern = "^[0-9A-F]+$"; |
| | | return Pattern.compile(pattern).matcher(str).matches(); |
| | | } |
| | | |
| | | |
| | | |
| | | } |