对敏感信息脱敏,如对姓名、证件号码、手机号码、银行卡号码进行脱敏

这篇具有很好参考价值的文章主要介绍了对敏感信息脱敏,如对姓名、证件号码、手机号码、银行卡号码进行脱敏。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、姓名脱敏

1、脱敏规则一:显示姓名中的第一个字,其它用*号代替。

显示姓名中的第一个字,如为英文等其他语种,也是显示第一个字母。其它用*号代替。

① 举例

 张*        王**        A****

② 实现方法

 hideName(name) {
    if (!name) {
      return name
    }
    return name.replace(/(^.{1})(.+)$/g, (...args) => {
      let tempStr = '';
      if (args[2] && args[2].length) {
        tempStr = Array.from({
          length: args[2].length + 1,
        }).join('*');
      }
      return args[1] + tempStr;
    });
}

③ demo

console.log(hideName('小草莓')) // 小**

console.log(utils.hideName('Alice')) // A****

2、脱敏规则二:显示姓名中的第一个和最后一个字,其它用*号代替。

显示姓名中的第一个和最后一个字,如为英文等其他语种,也是显示第一个和最后一个字母。其它用*号代替。

① 举例

*三       王*蛋        A****e

② 实现方法

 hideName(name) {
    if (!name) {
      return name
    }
    return name.replace(/(^.{1})(.+)$/g, function (...args) {
      let tempStr = ''
      if (args[2] && args[2].length) {
        tempStr = Array.from({
          length: args[2].length
        }).join('*')
      }
      let res = name.length === 2 ? ('*' + name.slice(-1)) : (args[1] + tempStr + name.slice(-1))
      return res
    })
}

③ demo

console.log(hideName('张三')) // *三

console.log(hideName('小草莓')) // 小*莓

console.log(utils.hideName('Alice')) // A***e

二、证件号码脱敏

1、对固定位数进行脱敏

显示前2位和后2位,其它用*号代替。

① 举例

32**************1X

② 实现方法

// keepWord是要传入的不脱敏的位数
hideIdCard(idCard, keepWord) {
    if (!idCard) {
      return idCard
    }

    let digits = keepWord ? keepWord : 2,
      reg = new RegExp(`(^\\w{${digits}})(\\w+)(\\w{${digits}}$)`, 'g')

    return idCard.replace(reg, function (...args) {
      let tempStr = ''

      if (args[2] && args[2].length) {
        for (let i = 0, len = args[2].length; i < len; i++) {
          tempStr += '*'
        }
      }

      return args[1] + tempStr + args[3]
    })
 },

③ demo

console.log(hideIdCard('H01234567')) // H0*****67

console.log(hideIdCard('FRA123456789107')) // FR***********07

console.log(hideIdCard('440582202305254223')) // 44**************23

2、特定规则脱敏

显示前1/3和后1/3段,其他用*号代替

① 举例

H01***567

② 实现方法

  hideIdCard(idCard) {
    if (!idCard) {
      return idCard
    }
    let digits = parseInt(idCard.length/3)
    let reg = new RegExp(`(^\\w{${digits}})(\\w+)(\\w{${digits}}$)`, 'g')

    return idCard.replace(reg, function (...args) {
      let tempStr = ''

      if (args[2] && args[2].length) {
        for (let i = 0, len = args[2].length; i < len; i++) {
          tempStr += '*'
        }
      }

      return args[1] + tempStr + args[3]
    })
  },

③ demo

console.log(hideIdCard('H01234567')) // H01***567

console.log(hideIdCard('FRA123456789107')) // FRA12*****89107

console.log(hideIdCard('440582202305254223')) // 440582******254223

三、手机号码脱敏

显示前3位+****+后4位。

① 举例

137****9050

② 实现方法

  hidePhone(phone) {
    let reg = /(\d{3})\d*(\d{4})/
    return phone ? phone.replace(reg, '$1****$2') : ''
  }

③ demo

console.log(hideName('18812345678')) // 188****5678

 四、银行卡卡号脱敏

显示前3位+ *(实际位数)+后4位

① 举例

622*********1496

② 实现方法

  hideBankAccount(bankAccount) {
    let reg = /(\d{3})(\d+)(\d{4})/
    var strLength = bankAccount.match(reg)[2].length;
    let strValue = ''
    for(let i = 0; i < strLength; i++) {
      strValue+='*'
    }
    return bankAccount.replace(reg,  "$1" + strValue + "$3")
  }

③ demo文章来源地址https://www.toymoban.com/news/detail-459957.html

console.log(utils.hideBankAccount('62177777555555553654')) // 621*************3654

到了这里,关于对敏感信息脱敏,如对姓名、证件号码、手机号码、银行卡号码进行脱敏的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 日志里的敏感信息还在打明文?3 种日志脱敏方案任你选

    关注公众号【 1024个为什么 】,及时接收最新推送文章! 下面链接文章中重新做了梳理,补充了基于 log4j  的解决方案,建议大家阅读最新文章。 《一次性解决打日志时的4个重复低效场景(日志脱敏、日期格式化、json序列化)》 我们打的日志中经常包含姓名、手机号、银行

    2023年04月08日
    浏览(70)
  • Java:正则表达式书写规则及相关案例:检验QQ号码,校验手机号码,邮箱格式,当前时间

    目标:体验一下使用正则表达式来校验数据格式的合法性。 需求:校验QQ号码是否正确,要求全部是数字,长度是(6-20)之间,不能以0开头

    2024年02月12日
    浏览(67)
  • 网站程序中手机号码判断方法

     需求:输入错误的手机号,会有提示语,正确的手机号码会有正确的图标   效果:   思路:   (1)排版(不细讲),使用input 、button、span等标签,排版里面一个主要的小点是,需要写出两个span ,通过v-show先进行隐藏,等后面判断手机号码的正确错误再进行显示与

    2024年02月08日
    浏览(47)
  • 微信小程序授权手机号码登录

    因公司项目需要做微信小程序相关项目,故记录一下相关开发要点。 使用的是binarywang工具包,版本为4.1.0。 后端框架使用springboot 更多其他功能使用推荐查看https://github.com/binarywang/binarywang 3.1 微信小程序开发的相关配置 在application.yml文件中配置 3.2创建配置文件 代码如下(示

    2024年02月09日
    浏览(58)
  • 微信小程序-授权登录(手机号码)

    template     view class=\\\"work-container\\\"         view class=\\\"login\\\"             view class=\\\"content\\\"                 button class=\\\"button_wx\\\" open-type=\\\"getPhoneNumber\\\" @getphonenumber=\\\"getPhoneNumber\\\"                     u-icon name=\\\"weixin-fill\\\" color=\\\"#FFFFFF\\\" size=\\\"50\\\"/u-icon                     

    2024年02月06日
    浏览(55)
  • 微信小程序登录及获取手机号码

    前端:微信先授权登录后再授权获取手机号码 后端:先微信登录获取openid返回前端,前端再传递手机号码code给后端获取手机号码并在本地数据量注册用户信息,需提供2个接口 第一步:先通过code微信授权登录获取openid 第二步:根据app_id和app_secret获取access_token 第三步:根据

    2024年02月12日
    浏览(68)
  • 微信小程序如何获取用户手机号码?

    需求 在开发一款微信小程序时,通常需要用户进行微信登录,并获取用户的手机号码作为用户的唯一标识(userId)。虽然可以通过wx.login来获取用户的openid,但有时候需要获取用户的手机号码以提供更完善的个性化服务,因此探索获取用户手机号码的方式成为开发中的一个重

    2024年04月22日
    浏览(51)
  • 手机来电显示私密号码怎么回事?

      手机来电显示私密号码是很多用户经常遇到的问题,那么手机来电显示私密号码怎么回事呢? 原因 手机来电显示私密号码一般有以下几种原因: 对方使用了网络电话或开通了隐藏号码服务。网络电话是一种通过互联网进行通话的服务,一般情况下,网络电话不会显示来电

    2024年02月05日
    浏览(237)
  • 微信小程序登录+获取手机号码(前端+后端)

    上面这张是微信小程序官方原图,登录流程如上图所示,下面一步步进行以及说一下碰到的坑。 1.wx.login()获取code         调用微信小程序官方提供的方法获取code提供给后端用以换取session_key、openid。         注意:code只能使用一次就会失效,且有效期为5分钟 2.后端收到

    2024年02月12日
    浏览(59)
  • 【微信小程序】纯前端获取用户手机号码

    2024.02.04更新 作者最近做了一个小程序项目,证明了纯前端获取手机号是不可以发布的,首先审核时会因为appsecret明文而不通过,就算你使用某种加密方法绕过审核,正式发布后在真机环境还是不可以使用的,所以本方法仅供练习使用,在第二步拿到code之后传给后端就可以了

    2024年02月03日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包