身份證號碼作為國民身份證的重要認證材料,其本身蘊含著很多個人隱私信息,例如出生日期、籍貫、性別等。因此,在某些場景下,需要將身份證號碼進行脫敏。身份證脫敏一般隱藏幾位,是項目中需要考慮的問題之一。

一、隱藏幾位
身份證脫敏一般隱藏的位數有3位和4位兩種。將前3位和后3位(或前4位和后4位)保留,中間剩下的位數隱藏,例如:
110************001X
1100***********01X*
二、需求場景
身份證脫敏通常用于以下場景:
1、需求展示中,由于涉及用戶隱私,需要處理身份證號碼,但是不影響信息展示;
{
"name":"小明",
"idCard":"420**********827"
}
2、日志記錄中,需要脫敏身份證號碼,以便于對用戶隱私進行保護;
2021-09-01 13:25:44 [INFO] 用戶登錄,登錄賬戶:小紅,登錄IP:192.168.1.100,登錄設備:PC,身份證號碼:510***********092
三、Java代碼示例
下面是Java代碼示例,用于實現身份證號碼的脫敏:
/**
* 身份證號碼脫敏
* @param idCard 身份證號碼
* @return 脫敏后的身份證號碼
*/
public static String idCardMask(String idCard) {
if (idCard != null && idCard.length() == 18) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(idCard.substring(0, 3))
.append("*************".substring(0, 12))
.append(idCard.substring(15, 18));
return stringBuilder.toString();
}
return null;
}
使用StringBuilder將前3位和后3位與中間的“*************”拼接起來,返回脫敏后的身份證號碼。需要注意的是,代碼中使用了字符串的substring方法,截取了身份證號碼的前3位、后3位和中間的12位或13位。

京公網安備 11010802030320號