#SECPR001. SEC-PR-001 实操一 联系方式脱敏

    ID: 1082 Type: Default 2000ms 256MiB Tried: 0 Accepted: 0 Difficulty: 4 Uploaded By: Tags>代码实操数据安全技术人员专项基础与进阶题族:SEC-PR-001公开样题公开样题

SEC-PR-001 实操一 联系方式脱敏

SEC-PR-001 · 数据安全技术人员 · 专项 · 满分 25 分 · 基础与进阶

可提交 C、C++、Java、Python 3 和 Node.js。评测机没有安装 Kotlin、PyPy,也没有支持大整数的 GNU awk,因此不开放 Kotlin、PyPy 和 Bash。

业务与规则

1. type为PHONE或ID。PHONE有效条件:长度11、全部为ASCII数字、首位为1;输出前3位+4个星号+后4位。

2. ID有效条件:长度18、前17位为ASCII数字、末位为ASCII数字或大写X;输出前4位+10个星号+后4位。

3. NA及不满足规则的值输出INVALID。ID仅按以上格式验证,不验证真实证件校验位、地区或生日;掩码不代表完全匿名。

输入

第一行n;随后n行rid type value。rid唯一,value无空格,全部数据为合成数据。

输出

每行输出rid及脱敏值或INVALID,空格分隔,保持输入顺序。

范围

0≤n≤100000;value长度1至30;建议2秒、256MB,按语言校准。仅采用ASCII字符;输出文本精确匹配。

样例输入

4
R1 PHONE 13800138000
R2 ID 12345678901234567X
R3 PHONE 23800138000
R4 ID NA

样例输出

R1 138****8000
R2 1234**********567X
R3 INVALID
R4 INVALID

附件中的 sample.in、sample.out 与上面样例一致,不计入 25 分。计分点见测试配置,按点给分。

整数和文本按空白分隔后的 token 精确比较;小数允许绝对误差或相对误差 1e-6。时限 2 秒、内存 256MB;Java、Python 3 和 Node.js 时限按 2 倍,Java 内存按 2 倍。

题族:SEC-PR-001。状态:公开样题。组卷:否。公开:是。