用户信息模块相关的信息,出于信息安全的因素考虑,经常要求对信息进行脱敏后进行展示。以下是常用信息的脱敏方法。
姓名脱敏、手机号脱敏、邮箱脱敏、敏感词脱敏在系统中较为常见,实现方法也较为简单,主要是对字符串进行匹配替换。
// 姓名脱敏
function maskName(name) {
return name.replace(name.substring(1), '***')
}
// 手机号脱敏
function maskPhone(phone) {
return phone.substring(0, 3) + '****' + phone.substring(7, 11)
}
// 邮箱脱敏
function maskEmail(email) {
return '***' + email.substring(email.indexOf('@'))
}
// 全部脱敏
function maskAll(str) {
return !!str ? str.replace(/./g, '*') : ''
}
// test
maskName('张三') // 张***
maskPhone('13912345678') // 139****5678
maskEmail('test@qq.com') // ***@qq.com
maskAll('敏感信息文字') // ******
除了上述几个信息外,在金融系统中还有对用于余额、账号、卡号、身份证号、住址信息等也有脱敏的需求,只需将以上方法稍加修改即可实现,就不一一列出了,有需要可以评论区进行讨论交流。