当前位置: 首页 > 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…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

《C++ 模板》

目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板&#xff0c;就像一个模具&#xff0c;里面可以将不同类型的材料做成一个形状&#xff0c;其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式&#xff1a;templa…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...

群晖NAS如何在虚拟机创建飞牛NAS

套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...