Commit 29f24529 by 田超

Merge branch 'feature/1006875' into 'master'

feat: [1006875] 【新增】ERP账号申领

See merge request rays/pcloud-common-parent!259
parents 332255a2 5f7fb708
...@@ -140,4 +140,81 @@ public class AESUtil { ...@@ -140,4 +140,81 @@ public class AESUtil {
} }
return hs.toString().toUpperCase(); return hs.toString().toUpperCase();
} }
/**
* 使用固定密钥加密
* @param src 待加密数据
* @return 加密后数据
*/
public static String fixedEncrypt(final String src,String key) {
if (StringUtils.isBlank(src)) {
return src;
}
if (StringUtils.isBlank(key)) {
key=DEFAULT_KEY;
}
try {
byte[] encrypted = getEncryptCipherInstance(key).doFinal(src.getBytes());
return byte2hex(encrypted);
} catch (Throwable t) {
throw new BizException("aes encrypt failed,src=" + src, t);
}
}
private static Cipher getEncryptCipherInstance(String key) {
if (ENCRYPT_CIPHER == null) {
synchronized (AESUtil.class) {
if (ENCRYPT_CIPHER == null) {
try {
byte[] raw = key.getBytes();
SecretKeySpec spec = new SecretKeySpec(raw, KEY_AES);
ENCRYPT_CIPHER = Cipher.getInstance(KEY_AES);
ENCRYPT_CIPHER.init(Cipher.ENCRYPT_MODE, spec);
} catch (Throwable t) {
ENCRYPT_CIPHER = null;
throw new BizException("aes cipher init failed", t);
}
}
}
}
return ENCRYPT_CIPHER;
}
public static String fixedDecrypt(final String encrypted,String key) {
if (StringUtils.isBlank(encrypted)) {
return encrypted;
}
if (StringUtils.isBlank(key)) {
key=DEFAULT_KEY;
}
try {
byte[] b = hex2byte(encrypted);
if (b == null) {
throw new BizException("aes decrypt failed,src=" + encrypted);
}
byte[] original = getDecryptCipherInstance(key).doFinal(b);
return new String(original, StandardCharsets.UTF_8);
} catch (Throwable t) {
throw new BizException("aes decrypt failed,src=" + encrypted, t);
}
}
private static Cipher getDecryptCipherInstance(String key) {
if (DECRYPT_CIPHER == null) {
synchronized (AESUtil.class) {
if (DECRYPT_CIPHER == null) {
try {
byte[] raw = key.getBytes();
SecretKeySpec spec = new SecretKeySpec(raw, KEY_AES);
DECRYPT_CIPHER = Cipher.getInstance(KEY_AES);
DECRYPT_CIPHER.init(Cipher.DECRYPT_MODE, spec);
} catch (Throwable t) {
DECRYPT_CIPHER = null;
throw new BizException("aes cipher init failed", t);
}
}
}
}
return DECRYPT_CIPHER;
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment