手机号码和邮箱等联系地址,为什么不明文显示?

2024-08-25 21:38

本文主要是介绍手机号码和邮箱等联系地址,为什么不明文显示?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言:其实在应用各种产品的时候,也有发现过有些手机号码和邮箱地址等,都会有一部分是密文显示。 嗯,其实最明显的就是银行卡了,基本上就没有全部明文显示的。 这两天在做一个需求的时候,刚好也有这样的要求。 之前没有想过为什么,这次简单想了想,记录一下。 

一、需求整理

其实就是当为手机号:则显示前3位和后3位,其余的以*补齐; 而当是邮箱地址时,显示第一个字符以及@和之后的字符,其余的以*补齐。 示例:151*****507;h***********@163.com;

我的处理过程:那天很匆忙,直接先以结果为导向,so,有待改善的代码如下:

手机号混淆:

 

    protected String getSafeMobileString(String mobile) {String result = "";int mobileLength = 11;if (!Strings.isNullOrEmpty(mobile) && mobile.length() == mobileLength) {result = mobile.replaceAll("(\\d{3})\\d{5}(\\d{3})", "$1*****$2");}return result;}String result = "";int mobileLength = 11;if (!Strings.isNullOrEmpty(mobile) && mobile.length() == mobileLength) {result = mobile.replaceAll("(\\d{3})\\d{5}(\\d{3})", "$1*****$2");}return result;}


邮箱地址混淆:

 

 

    protected String getEmailString(String email){String result="";if (!Strings.isNullOrEmpty(email)) {String[] str=email.split("@");String strPrefix=str[0].substring(0,1);int len=str[0].length()-1;String innerText="";for (int i=0;i<len;i++){innerText+="*";}result=strPrefix+innerText+"@"+str[1];}return result;}String result="";if (!Strings.isNullOrEmpty(email)) {String[] str=email.split("@");String strPrefix=str[0].substring(0,1);int len=str[0].length()-1;String innerText="";for (int i=0;i<len;i++){innerText+="*";}result=strPrefix+innerText+"@"+str[1];}return result;}


事实上,我一开始这样写完后,在页面上的显示,完全达到了需求所说的密文显示。 刚开始,我也就是这么过去了!

 

二、为什么要密文显示

后来在做另一个需求的时候,在查看HTML内容的时候,发现了一个大bug,因为显示虽然是密文显示,但由于需要默认验证手机验证码或者邮箱验证码,所以在页面的某一个地方,用hidden类型,明文显示了一个手机号、邮箱地址。 那时候我就很懵逼了,我靠靠,这是什么鬼,藏毛线啊,费半天劲,就跟走个过场骗鬼一样。

然后,我就在想,要求密文显示的用意,到底是什么?作为用户本人来说,明文、密文其实区别不大,那么为什么要密文呢?我想到的是: 防止这种关键信息,被非本人的用户获取到!  基于这一点:1,对于普通的用户来说,我之前做的那一步就够了,密文掩盖,根本看不出完整的数据;2,但对于稍微懂点的人,还有那些爬手来说,这就是一场掩耳盗铃的闹剧。 基于此:我做了以下更改:

以密文显示数据,并且去除页面的手机号、邮箱地址信息,在操作时,直接以后台缓存的用户数据做处理。   PS:目前也就做到这样了,呃,呵呵哒!

但是,查了以下网上对于混淆这种关键信息的方法有很多:A:做成图片显示;B:将可能会用到的正则匹配关键字做更改,比如说:将@ 配置为一个汉字或者其他;C......

三、个人总结

总结这篇博客,主要不是想说应该怎么去混淆这个数据以及它究竟有多少种方式去做到。 我个人来说,主要是想记录一下自己的成长和思考,为什么呢? 之前有一个人跟我说过:不要以为那些找锤子的人,真的是想钉一颗钉子,也许他只是想找个地方放下他的物品而已!

结合到这个简单的例子,我觉得虽然我后来把页面上隐藏的手机号和邮箱地址干掉了是件很小的事儿,但是:我思考了。

 

这篇关于手机号码和邮箱等联系地址,为什么不明文显示?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1106725

相关文章

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM

CSS模拟 html 的 title 属性(鼠标悬浮显示提示文字效果)

《CSS模拟html的title属性(鼠标悬浮显示提示文字效果)》:本文主要介绍了如何使用CSS模拟HTML的title属性,通过鼠标悬浮显示提示文字效果,通过设置`.tipBox`和`.tipBox.tipContent`的样式,实现了提示内容的隐藏和显示,详细内容请阅读本文,希望能对你有所帮助... 效

Git如何修改已提交人的用户名和邮箱

《Git如何修改已提交人的用户名和邮箱》文章介绍了如何修改Git已提交人的用户名和邮箱,包括注意事项和具体步骤,确保操作正确无误... 目录git修改已提交人的用户名和邮箱前言第一步第二步总结git修改已提交人的用户名和邮箱前言需注意以下两点内容:需要在顶层目录下(php就是 .git 文件夹所在的目

使用Java发送邮件到QQ邮箱的完整指南

《使用Java发送邮件到QQ邮箱的完整指南》在现代软件开发中,邮件发送功能是一个常见的需求,无论是用户注册验证、密码重置,还是系统通知,邮件都是一种重要的通信方式,本文将详细介绍如何使用Java编写程... 目录引言1. 准备工作1.1 获取QQ邮箱的SMTP授权码1.2 添加JavaMail依赖2. 实现

如何设置vim永久显示行号

《如何设置vim永久显示行号》在Linux环境下,vim默认不显示行号,这在程序编译出错时定位错误语句非常不便,通过修改vim配置文件vimrc,可以在每次打开vim时永久显示行号... 目录设置vim永久显示行号1.临时显示行号2.永www.chinasem.cn久显示行号总结设置vim永久显示行号在li

电脑显示hdmi无信号怎么办? 电脑显示器无信号的终极解决指南

《电脑显示hdmi无信号怎么办?电脑显示器无信号的终极解决指南》HDMI无信号的问题却让人头疼不已,遇到这种情况该怎么办?针对这种情况,我们可以采取一系列步骤来逐一排查并解决问题,以下是详细的方法... 无论你是试图为笔记本电脑设置多个显示器还是使用外部显示器,都可能会弹出“无HDMI信号”错误。此消息可能

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器