在Java中,HashMap是一种常用的数据结构,用于存储键值对。如果你需要在处理HashMap中的数据时进行脱敏,可以使用以下方法:
put
和get
方法,以便在插入和获取数据时进行脱敏处理。import java.util.HashMap;
public class SensitiveHashMap<K, V> extends HashMap<K, V> {
@Override
public V put(K key, V value) {
K sensitiveKey = maskKey(key);
return super.put(sensitiveKey, value);
}
@Override
public V get(Object key) {
K sensitiveKey = maskKey((K) key);
return super.get(sensitiveKey);
}
private K maskKey(K key) {
// 在这里实现你的脱敏逻辑
// 例如,将字符串的某些字符替换为星号(*)
if (key instanceof String) {
return (K) ((String) key).replace("*", "X");
}
return key;
}
}
public class Main {
public static void main(String[] args) {
SensitiveHashMap<String, String> sensitiveHashMap = new SensitiveHashMap<>();
// 添加数据
sensitiveHashMap.put("user_id", "12345");
sensitiveHashMap.put("user_name", "John Doe");
// 获取数据
String userId = sensitiveHashMap.get("user_id"); // 返回 "U***d"
String userName = sensitiveHashMap.get("user_name"); // 返回 "J*** Doe"
System.out.println("User ID: " + userId);
System.out.println("User Name: " + userName);
}
}
在这个示例中,我们创建了一个名为SensitiveHashMap
的自定义类,它继承自HashMap
。我们重写了put
和get
方法,以便在插入和获取数据时进行脱敏处理。在这个例子中,我们将字符串的某些字符替换为星号(*),但你可以根据需要实现自己的脱敏逻辑。