当前位置: 首页 > news >正文

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

一、姓名脱敏

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*****67console.log(hideIdCard('FRA123456789107')) // FR***********07console.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***567console.log(hideIdCard('FRA123456789107')) // FRA12*****89107console.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

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

 

相关文章:

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

一、姓名脱敏 1、脱敏规则一&#xff1a;显示姓名中的第一个字&#xff0c;其它用*号代替。 显示姓名中的第一个字&#xff0c;如为英文等其他语种&#xff0c;也是显示第一个字母。其它用*号代替。 ① 举例 张* 王** A**** ② 实现方法 hideName(name) {if (!n…...

创建型——单例模式C++实现

单例模式即保证一个类只有一个实例&#xff0c;并提供一个访问该单例的接口。 实例 1.懒汉式 用的时候才创建单例&#xff0c;“懒”。 Singleton.h #ifndef SINGLETON_H_ #define SINGLETON_H_#include <iostream> #include <string> #include <mutex>…...

【华为OD统一考试B卷 | 100分】执行时长(C++ Java JavaScript Python)

文章目录 题目描述输入描述输出描述ACM输入输出模式用例机考代码查重C++javascriptjavapython题目描述 为了充分发挥GPU[算力],需要尽可能多的将任务交给GPU执行,现在有一个任务数组,数组元素表示在这1秒内新增的任务个数且每秒都有新增任务。 假设GPU最多一次执行n个任务,…...

操作系统原理 —— 内存管理的概念(十八)

为什么要有内存管理 为什么要对内存进行管理&#xff0c;需要解决什么问题&#xff1f; 要回答这个问题&#xff0c;首先我们需要明白&#xff1a;进程运行时&#xff0c;需放在内存才能运行。比如在执行一个程序时&#xff0c;需将该程序的相关数据与指令装入内存才能运行。…...

GPT-4国内怎么用

GPT-4是OpenAI推出的最新的生成式AI模型&#xff0c;作为ChatGPT的进化版&#xff0c;它在回答准确性、识图能力、生成歌词和创意文本等方面有了显著的提升。然而&#xff0c;由于网络限制&#xff0c;国内用户无法直接访问官方网站。那么&#xff0c;GPT-4在国内如何使用呢&am…...

搭建LightPicture开源免费图床系统「公网远程控制」

文章目录 1.前言2. Lightpicture网站搭建2.1. Lightpicture下载和安装2.2. Lightpicture网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 转载自cpolar极点云的文章&#xff1a;【搭建私人图床】使用LightPicture开源…...

shell编程lesson06

流控制 while 和 until 循环 #!/bin/bash# while-count:display a series of numbersi1 while [ $i -le 5 ];doecho $ii$((i1)) done echo "Finished!"while命令的语法结构如下&#xff1a; while commands;do commands;done 我们可以使用while循环改进上一节中的…...

国内免费可用的ChatGPT网页版

ChatGPT 一、ChatGPT是个啥&#xff1f;二、16个国内免费的ChatGPT网站。三、ChatGPT使用方式 一、ChatGPT是个啥&#xff1f; chat&#xff1a;表示“聊天”。 GPT&#xff1a;则是Generative、Pre-trained、Transformer的缩写&#xff0c;表示“预训练语言模型”&#xff0…...

用同样的关键词测试不同的人工智能

测试词汇&#xff1a;用“电商、接口、店群”写一篇关于API接口的推广软文 返回结果&#xff1a; 人工智能1&#xff1a; 电商行业已经进入了全面数字化转型的时代&#xff0c;而API接口技术正是数字化转型的重要组成部分。随着移动端、小程序等终端越来越普及&#xff0c;A…...

shell变量类型含义 长方形面积计算 截取相应字段方法

1.总结变量的类型及含义&#xff1f; 2.实现课堂案例计算长方形面积&#xff1f;&#xff08;6种方式&#xff09; 3.定义变量urlhttps://blog.csdn.net/weixin_45029822/article/details/103568815&#xff08;通过多种方法实现&#xff09; 1&#xff09;截取网站访问的协议 …...

Java:从单线程计数器到多线程数据同步synchronized和原子类Atomic

目录 使用单线程使用多线程使用多线程 synchronized使用多线程 原子类AtomicLong 使用单线程 单线程修改计数器的值&#xff0c;没有发生问题&#xff0c;每次运行结果都是10000&#xff0c;不过程序耗时较长 package com.example;/*** 计数器*/ class Counter {private st…...

提前进入行业顶尖阵营:高性能计算实习的竞争优势

如今就业越来越内卷&#xff0c;尤其是计算机行业更是如此。加上GPT以及大模型的加持&#xff0c;各大企业纷纷降本增效&#xff0c;普通程序员逐渐失去竞争力。想要在竞争激烈的就业市场中脱颖而出&#xff0c;提前进入行业顶尖阵营是一个明智的选择。而高性能计算实习将为您提…...

Java程序设计入门教程--标识符和关键字

目录 标识符 标识符的约定 标识符 1. 定义 用来标识类名&#xff0c;变量名&#xff0c;方法名&#xff0c;类型名&#xff0c;数组名&#xff0c;文件名的有效序列称为标识符。简单地说&#xff0c;标识符就是一个名字。 2. 标识符命名规则 &#xff08;1&#xff09;大小…...

国产IC芯片自动化测试系统ATECLOUD,助力芯片测试自动化

IC芯片测试成本是影响制造和加工成本的重要因素。在某些情况下&#xff0c;测试成本可能占到器件总成本的40%左右。为了降低测试成本&#xff0c;可以优化测试程序并研发多工位测试。同时&#xff0c;必须平衡良品率和测试时间&#xff0c;以实现最佳的成本控制。本篇文章纳米软…...

BeanFactory和ApplicationContext有什么区别?

BeanFactory和ApplicationContext有什么区别&#xff1f; BeanFactory和ApplicationContext有什么区别&#xff1f; BeanFactory和ApplicationContext有什么区别&#xff1f; BeanFactory (轻量级) 和ApplicationContext(高级特性和框架)是Spring的两大核心接口&#xff0c;都…...

js的BOM对象中的window、location使用

说明&#xff1a;BOM的全称是Browser Object Model&#xff0c;浏览器对象模型&#xff0c;有Window&#xff08;浏览器窗口&#xff09;、Navigator&#xff08;浏览器&#xff09;、Screen&#xff08;屏幕&#xff09;、History&#xff08;历史记录&#xff09;和Location&…...

DAY 68 redis高可用的主从复制、哨兵、cluster集群

Redis 高可用 什么是高可用 在web服务器中&#xff0c;高可用是指服务器可以正常访问的时间&#xff0c;衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。 但是在Redis语境中&#xff0c;高可用的含义似乎要宽泛一些&#xff0c;除了保证提供正常服…...

leetcode 1209 学会删除字符串

删除字符串的经典kotlin操作&#xff1a; val mTemp (temp.text).replace(Regex("℃"),"") 以下是题目&#xff01; 1209. 删除字符串中的所有相邻重复项 II 提示 中等 174 相关企业 给你一个字符串 s&#xff0c;「k 倍重复项删除操作」将会从 s…...

JavaScript6

一、概念 ES6是JavaScript语言的标准。 新特性&#xff1a;let和const命令、变量的解构赋值、字符串函数对象数组等扩展。 环境准备&#xff1a;需要安装NodeJs。 二、新特性 1、let let命令用来声明变量。他的用法类似var&#xff0c;但所声明的变量&#xff0c;只在let命令…...

轻松安装Redis:不用担心配置问题

一、Centos安装Redis 1.安装 EPEL 源 Redis 不在 CentOS 官方仓库中&#xff0c;需要安装 EPEL 源才能访问到 Redis 软件包。运行以下命令安装 EPEL 源&#xff1a; sudo yum install epel-release 2.安装 Redis 使用以下命令安装 Redis&#xff1a; sudo yum install re…...

BabelDOC:3步搞定学术论文PDF翻译,公式表格完美保留!

BabelDOC&#xff1a;3步搞定学术论文PDF翻译&#xff0c;公式表格完美保留&#xff01; 【免费下载链接】BabelDOC Yet Another Document Translator 项目地址: https://gitcode.com/GitHub_Trending/ba/BabelDOC 你是否正在为英文学术论文的阅读而烦恼&#xff1f;复杂…...

[智能体-29]:curl 命令完整详解

全称&#xff1a;Client URL&#xff0c;客户端 URL 请求工具跨系统内置命令行 HTTP 工具&#xff0c;无额外安装&#xff0c;用于网络请求、接口调试、数据收发。一、核心作用等价命令行版 requests&#xff0c;可访问网页、调用 API、下载文件、测试服务连通性&#xff0c;调…...

范畴论与拓扑斯理论:为深度神经网络构建形式化语义分析框架

1. 项目概述&#xff1a;当范畴论遇见深度神经网络如果你和我一样&#xff0c;既对深度神经网络&#xff08;DNN&#xff09;内部那看似“黑箱”的运作机制感到好奇&#xff0c;又对背后那套精妙的数学语言心向往之&#xff0c;那么“范畴论”和“拓扑斯理论”这两个词&#xf…...

# 软考软件设计师 · 考前2天轻松复习与终极必背手册

软考软件设计师 考前2天轻松复习与终极必背手册&#x1f4c5; 2026年5月21日 | 距考试仅剩2天 | D-2 轻松复习日 ⚠️ 今天的核心任务&#xff1a;翻看错题本 快速过一遍速记口诀 确认考场路线 心态放松 ❌ 不要学新内容&#xff01;不要做难题&#xff01;今天的任务只有一…...

Qwen模型 LeetCode 2584. 分割数组使乘积互质 JavaScript实现

哇&#xff01;JavaScript版本来啦&#xff5e;这道题用JS写起来特别优雅&#xff0c;让我给你展示一个清晰又高效的实现&#xff01;javascript /*** param {number[]} nums* return {number}*/ var findValidSplit function(nums) {const n nums.length;if (n 1) return -…...

Qwen模型 LeetCode 2581. 统计可能的树根数目 C++实现

哈哈&#xff0c;看来你对这道题特别感兴趣呀&#xff01;让我给你一个**终极优化版**的C实现&#xff0c;这次用位运算哈希 向量预分配&#xff0c;保证又快又稳&#xff01;cpp class Solution { public:int rootCount(vector<vector<int>>& edges, vector&…...

终极指南:无需微软账户离线启用Windows Insider预览计划的完整方案

终极指南&#xff1a;无需微软账户离线启用Windows Insider预览计划的完整方案 【免费下载链接】offlineinsiderenroll OfflineInsiderEnroll - A script to enable access to the Windows Insider Program on machines not signed in with Microsoft Account 项目地址: http…...

ML模型监控工具:监控和维护机器学习模型的性能

ML模型监控工具&#xff1a;监控和维护机器学习模型的性能 一、ML模型监控工具概述 1.1 ML模型监控工具的定义 ML模型监控工具是指用于监控和维护机器学习模型性能的软件工具。它通过收集模型的预测数据、性能指标和数据质量&#xff0c;帮助用户了解模型的状态&#xff0c;及时…...

第二周学习

学习&#xff08;一&#xff09;、低通滤波器1、原理&#xff08;为什么方波经过低通滤波器变成了正弦波&#xff09;傅里叶变换对于f&#xff08;t&#xff09;来说&#xff0c;只要f&#xff08;t&#xff09;是周期的&#xff0c;则一定可以将f&#xff08;t&#xff09;拆解…...

【咨询业AI Agent应用成熟度评估模型】:基于217家机构实测数据的4级能力图谱与升级路线图

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;【咨询业AI Agent应用成熟度评估模型】&#xff1a;基于217家机构实测数据的4级能力图谱与升级路线图 本模型基于对全球217家管理咨询、战略咨询与数字化转型服务商的实地调研与系统性能力测评&#xff0c;覆…...