JavaScript 实现敏感信息脱敏

JavaScript 实现敏感信息脱敏

银行卡号脱敏

要在 JavaScript 中对银行卡信息进行脱敏,可以使用字符串处理方法来替换敏感信息为特定的字符。以下是一个简单的示例代码,将银行卡号的中间数字用 “*” 替换:

function desensitizeCardNumber(cardNumber) {// 获取银行卡号长度const length = cardNumber.length;// 如果银行卡号长度小于等于4,则无需脱敏,直接返回原始银行卡号if (length <= 4) {return cardNumber;}// 取出前四位const firstTwo = cardNumber.substring(0, 2);// 取出后四位const lastFour = cardNumber.substring(length - 4);// 构造脱敏字符串,中间的数字用 "*" 替换const middle = "*".repeat(length - 6);// 组合成脱敏后的银行卡号const desensitizedCardNumber = firstTwo + middle + lastFour;return desensitizedCardNumber;
}// 测试
const cardNumber = "1234567890123456";
const desensitizedNumber = desensitizeCardNumber(cardNumber);
console.log(desensitizedNumber); // 输出: "12**********3456"

姓名脱敏

要在 JavaScript 中对姓名进行脱敏,可以根据实际需求采取不同的脱敏策略。以下是一个简单的示例代码,将姓名的后几个字符替换为 “*”:

function desensitizeName(name) {// 获取姓名长度const length = name.length;// 如果姓名长度小于等于1,则无需脱敏,直接返回原始姓名if (length <= 1) {return name;}// 取出第一个字符const firstChar = name.substring(0, 1);// 构造脱敏字符串,除了第一个字符外,其余字符都用 "*" 替换const desensitizedPart = "*".repeat(length - 1);// 组合成脱敏后的姓名const desensitizedName = firstChar + desensitizedPart;return desensitizedName;
}// 测试
const name = "张三";
const desensitizedName = desensitizeName(name);
console.log(desensitizedName); // 输出: "张*"

手机号脱敏

要在 JavaScript 中对手机号进行脱敏,可以根据实际需求采取不同的脱敏策略。以下是一个简单的示例代码,将手机号的后四位用 “*” 替换:

function desensitizePhoneNumber(phoneNumber) {// 获取手机号长度const length = phoneNumber.length;// 如果手机号长度小于等于7,则无需脱敏,直接返回原始手机号if (length <= 7) {return phoneNumber;}// 取出前三位const firstThree = phoneNumber.substring(0, 3);// 取出后四位const lastFour = phoneNumber.substring(length - 4);// 构造脱敏字符串,中间四位用 "*" 替换const middle = "*".repeat(length - 7);// 组合成脱敏后的手机号const desensitizedPhoneNumber = firstThree + middle + lastFour;return desensitizedPhoneNumber;
}// 测试
const phoneNumber = "13812345678";
const desensitizedPhoneNumber = desensitizePhoneNumber(phoneNumber);
console.log(desensitizedPhoneNumber); // 输出: "138****5678"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/13378.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小白git

克隆 &#xff1a;git clone 链接地址 如果没有.git文件的话&#xff1a;git init 切换分支&#xff1a;cd 目录 拉代码&#xff1a;git pull 查看你自己改了那些文件&#xff1a;git status 添加道本地暂存区&#xff1a;git add * 提交到远端&#xff1a;git commit …

吴恩达深度学习笔记:优化算法 (Optimization algorithms)2.9-2.10

目录 第二门课: 改善深层神经网络&#xff1a;超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)第二周&#xff1a;优化算法 (Optimization algorithms)2.9 学习率衰减(Learning rate decay) 第二门…

HP5V80、HP5V105、HP3V28电比例驱动柱塞泵放大器

HP5V80、HP5V105、HP3V28、HP3V45、HP3V60、HP3V80、HP3V125、HP3V140带电比例控制泵放大器&#xff0c;变排量泵的排量可通过由BEUEC比例放大器输出到比例电磁阀电流变化而进行调整&#xff0c;控制电流范围为300mA至800mA(24VDC)或600mA至1600mA(12VDC)。主要适合应用于工程机…

【联通官网及APP注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞 …

「AI模型瘦身术」——知识蒸馏技术综述

使用KD原因 遇到问题&#xff1a;从产业发展的角度来看工业化将逐渐过渡到智能化&#xff0c;边缘计算逐渐兴起预示着 AI 将逐渐与小型化智能化的设备深度融合&#xff0c;这也要求模型更加的便捷、高效、轻量以适应这些设备的部署。 解决方案&#xff1a;知识蒸馏技术 知识…

Logic Pro X for Mac v11.0.0激活版:专业音频制作软件

对于音乐创作者来说&#xff0c;一个稳定、高效的工作流程至关重要。Logic Pro X for Mac提供了一系列工作流程优化功能&#xff0c;让你能够更快捷、高效地完成音乐创作。从添加音轨、录制音频&#xff0c;到混音和编曲&#xff0c;每一个步骤都如丝般顺滑。同时&#xff0c;L…

Maven 依赖排查

先从项目去看显而易见&#xff0c;假如我们有一个项目&#xff0c;父工程中包含一些子工程&#xff0c;如下&#xff1a; 我们想看一下samples-account中的依赖关系&#xff0c;那么我们可以打开 samples-account的pom文件&#xff0c;查看其maven依赖关系图。 我们可以看到此项…

Java测试框架:分享常用的Java测试框架,如JUnit, TestNG等,包括单元测试,集成测试,性能测试等

单元测试框架 JUnit JUnit简介 JUnit是一个开源的Java测试框架,用于编写和执行可重复的测试。它是Java开发人员的一个重要工具,用于进行单元测试、回归测试和模块化测试。JUnit提供了一种形式化的方式来编写测试用例,并通过这些测试用例核实代码的正确性。具有可预测的测试…

ARM 交叉编译搭建SSH

一、源码下载 zlib&#xff1a;zlib-1.3.1.tar.xz openssl&#xff1a;openssl-0.9.8d.tar.gz openssh&#xff1a;openssh-4.6p1.tar.gz 二、交叉编译 1、zlib 编译参考这里 2、openssl tar -xf openssl-0.9.8d.tar.gz ./Configure --prefix/opt/ssh/openssl os/compile…

android设计模式-builder模式

builder模式可以看成是链式调用&#xff0c;如&#xff0c;是builder不是那个bunder new AlertDialog.Builder(this) .setTitle("对话框") .setMessage("测试") .setIcon(R.mipmap.ic_launcher) …

2024年抖店保证金交多少?保证金常见问题解答,一文解决你所有疑惑

大家好&#xff0c;我是电商花花 新手如果想要开抖音小店&#xff0c;有一个大坑是必须要避开的。 就是我们店铺开通之后&#xff0c;我们一定要交保证金&#xff0c;如果不交&#xff0c;那就是0元开店。 很多新手听别人说做抖音小店可以0元开店&#xff0c;不用缴纳保证金就…

Voronoi路径规划探索

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言Voronoi图的生成与更新Voronoi路径规划探索2.维诺图Voronoi的生成--避障路径Voronoi Planner一、生成与更新代价地图costmap的方式二、生成与更新D…

开箱机选型“避坑”指南:风险识别与应对策略一网打尽

在现代化生产线上&#xff0c;开箱机作为关键设备之一&#xff0c;其选型过程的成功与否直接关系到生产效率与成本控制。然而&#xff0c;在选型过程中&#xff0c;往往会面临诸多风险&#xff0c;如何有效识别并应对这些风险&#xff0c;成为企业关注的焦点。星派将为您详细解…

JETBRAINS IDES 分享一个2099通用试用码!DataGrip 2024 版 ,支持一键升级

文章目录 废话不多说上教程&#xff1a;&#xff08;动画教程 图文教程&#xff09;一、动画教程激活 与 升级&#xff08;至最新版本&#xff09; 二、图文教程 &#xff08;推荐&#xff09;Stage 1.下载安装 toolbox-app&#xff08;全家桶管理工具&#xff09;Stage 2 : 下…

[解决方法]echarts地图/图表缩放,侧边栏导致样式自适应问题

&#x1f50e;嘿&#xff0c;这里是慰慰&#x1f469;&#x1f3fb;‍&#x1f393;&#xff0c;会发各种类型的文章&#xff0c;智能专业&#xff0c;从事前端&#x1f43e; &#x1f389;如果有帮助的话&#xff0c;就点个赞叭&#xff0c;让我开心一下&#xff01;&#x1f…

百度Comate插件领50京东E卡

给你分享一个AI编码助手——百度Comate&#xff01;扫码参与抽红包活动&#xff0c;520宠粉&#xff01;送京东卡&#xff01;https://url.xffjs.com/sMsP7m 流程如下 点击&#xff1a;点我传送 验证码登录账户 点击个人中心 复制License 去idea或者vscode安装插件 询问一…

Mysql的语句执行很慢,如何分析呢?

想象一下&#xff0c;MySQL像是一本巨大的电子相册&#xff0c;里面存放着各种照片&#xff08;数据&#xff09;。当你想要找某张照片时&#xff0c;如果相册没有整理&#xff0c;你可能需要一张张翻看&#xff0c;这自然就慢了。但如果你给相册里的照片分了类&#xff0c;贴上…

【Redis】Redis 主从集群(二)

1.哨兵机制原理 1.1.三个定时任务 Sentinel 维护着三个定时任务以监测 Redis 节点及其它 Sentinel 节点的状态 1&#xff09;info 任务&#xff1a;每个 Sentinel 节点每 10 秒就会向 Redis 集群中的每个节点发送 info 命令&#xff0c;以获得最新的 Redis 拓扑结构 2&#xff…

RabbitMQ的基本组件有哪些?

RabbitMQ的基本组件有哪些&#xff1f; RabbitMQ介绍、解耦、提速、削峰、分发 详解、RabbitMQ安装 可视化界面讲解 RabbitMQ 不生产消息&#xff0c;他是消息的搬运工。 1. Producer: 消息的发布者。 2. Connection:producer/comsumer 和 Message Broker 之间的 TCP 连接。 3…

创建线程的方法(windows)

引用&#xff1a;windows程序员面试指南 windows上常用的创建线程的方法&#xff1a;CreateThread()&#xff0c;_beginthread()&#xff0c;std::thread 1.CreateThread() CreateThread 是 windows 提供的 api&#xff0c;用法如下&#xff1a; HANDLE CreateThread([in, …