package com.xiaopeng.common.core.utils; import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; /** * 敏感数据确定性加解密工具。 *
* 当前为了支持数据库等值查询,使用 AES/ECB。后续迁移到配置化密钥时只需要替换 KEY 来源。
*/
public final class SensitiveDataCryptoUtil {
private static final String KEY = AESUtil.generateKeyFromPassword("robotaxi-sensitive-data-2026", AESUtil.KEY_LENGTH_128);
private SensitiveDataCryptoUtil() {
}
public static String encrypt(String value) {
if (!StringUtils.isNotBlank(value)) {
return value;
}
String trimmed = value.trim();
if (isEncrypted(trimmed)) {
return trimmed;
}
return AESUtil.encryptByECB(trimmed, KEY);
}
public static String decryptIfPossible(String value) {
if (!StringUtils.isNotBlank(value)) {
return value;
}
String trimmed = value.trim();
try {
return AESUtil.decryptByECB(trimmed, KEY);
} catch (Exception ignored) {
return value;
}
}
public static List