手机号码、身份证号码在显示的时候应该隐藏哪几位?

2015-04-28 11:50:10 +08:00
 lingyired
在产品的部分场景需要显示用户的手机号码和身份证号码,一般我们会将中间的几位用 '*' 号隐藏。
那么是否存在一个规范用来确定什么类型的号码需要隐藏哪几位?
30508 次点击
所在节点    问与答
19 条回复
nervouna
2015-04-28 11:51:44 +08:00
偷懒的做法是只显示最后四位。
stiekel
2015-04-28 12:09:25 +08:00
感觉这个要看情况吧,主要是看一串数字中,哪些是最不容易被获取到个人信息的。

身份证号前六位省县派出所码,和中间八位出生年月码,可以通过其它办法拿得到,但如果不隐藏,则很容易弄到不少个人信息。接下来三位,其实是不容易通过其它方式获取到的——感觉是需要重点隐藏的。
最后一位最没有价值,可以显示。

手机号,前三位肯定可以显示,接下来的四位数,是按地区来的,所以应该隐藏。而最后四位,至少应该隐藏两位。
gDD
2015-04-28 12:51:19 +08:00
楼上错了,最后一位是校验位,是穷举的关键突破口,一定要隐藏。

然后倒数第四位至倒数第二位的三个数字可以认为是随机的,猜不出来只能穷举,重要!

前面几位数楼上说了,包含个人信息,所以按需隐藏吧。

TL;DR: 必须隐藏最后四位。
yylzcom
2015-04-28 13:01:12 +08:00
@gDD 我不知道你说的哪儿不对,但觉得你说的就是不对。

按照你的说法,你说应该隐藏哪几位数字而显示哪几位?
ETiV
2015-04-28 13:04:21 +08:00
手机号:138xxxx8888
身份证号:
展现给自己:100110xxxxxxxx8888
展现给别人:xxxxxxxxxxxxxx8888

关于身份证号,设计隐藏的初衷是给用户自己一种安全的感觉,实际上后台都保存完整的。所以做好安全为重。

如果真需要展现给全部用户,只给后四位好了,够穷举一会儿了。印象中给招行信用卡客服打电话,一般都校验身份证后六位的。
stiekel
2015-04-28 13:05:06 +08:00
@gDD 其实,我的意思是最后一位是可以通过前面算出来的。
而实际上,仅通过最后一位来验证身份证号码是否正确,其实是不靠谱,尤其是不确定的位数有两个以上时。
243205964
2015-04-28 13:06:55 +08:00
比方说我的手机号码 ×××××××××13 个人认为这样显示手机号码比较好。
身份证号码就不知道了。。
Hello1995
2015-04-28 13:07:33 +08:00
身份证号各位代表的意思,以及最后一位校验码算法:
http://www.zhihu.com/question/19823489

个人觉得手机号和身份证号应该这样隐藏
130****1234。
3535**20150428****。
FrankFang128
2015-04-28 13:10:12 +08:00
身份证不要显示给别人啊,显示给自己看的话随便啊。
yylzcom
2015-04-28 13:15:10 +08:00
这个问题要考虑展示受众数量大小

****整个库都要展示给大量受众****
前六位地区可以考虑隐藏1到2位
生日年份保留前三位,隐藏最后一位
生日月份显示
生日日期隐藏(或者隐藏第一位)
最后四位隐藏最后一位,还有前三位的任意一位

例子:45*222198*02*9003*

这样既可以保护隐私,又不至于让客户看起来好假,要不像3楼说的,最后四位必须隐藏,那生日和派出所信息岂不是更要隐藏,干脆直接给客户展示18位星号算了。

****小部分,少受众****
比如只是展示库中的几条给特定人群(投资人等)可以只隐藏生日月份和日期,其余展示。这种短时间小受众的展示基本不用担心泄漏客户隐私
lingyired
2015-04-28 14:03:24 +08:00
@nervouna
@gDD
@stiekel
@FrankFang128
@yylzcom
@Hello1995
@243205964

我们的需求是展示给用户自己看的(他自己的设置页面中可以看)。
原来这一块没有一个规范,现在暂时隐藏身份证后四位以及生日的日期。
NeoAtlantis
2015-04-28 14:57:14 +08:00
公民身份号码是有国标的,去搜下。

我觉得应该隐藏的是右侧的四位。光知道前六位就不过是出生地,继续8位是生日。这些对于一个地区人口超过比如50x366(50年*366天)还不到两万人的地方就一定有重复的,根据生日问题可能有140人的地方就能50%找到重复的。

后三位我记得包含性别和上户口的顺序以及校验码,感觉包含的信息量挺多的……
NeoAtlantis
2015-04-28 15:00:45 +08:00
@lingyired 给用户看就应该反过来显示后四位。

比如我们说学号,有39051101,39051102, 39051103, ......能显示差异的就是末尾……
x86
2015-04-28 15:01:32 +08:00
感觉重要的是后4位,前面知道就猜的到,出生地(6位)+生日(8位)
bot
2015-04-28 15:07:10 +08:00
********************
243205964
2015-04-28 15:08:04 +08:00
手机号码不管什么情况下给客户都要×××××××××13

身份证号我不知道怎么弄。。
zchzch1014
2015-04-28 15:29:56 +08:00
身份证号最后四位一定要隐藏
mrjoel
2015-04-28 22:00:20 +08:00
说到这里 极其想吐槽新版支付宝的身份证隐藏。。。。。显示前五位与后三位。。。

如果知道生日(我相信这个根本不需要什么社会工程学)

前面还有一位。。后面四数字部分还有第一位。。10*10的组合。。。这。。。都不用暴力破解了。
gamexg
2015-04-28 22:26:34 +08:00
感觉最后4为最应该隐藏。
社工弄到用户生日、籍贯并不难,再配上后四位就直接得到用户身份证了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/186929

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX